Submission #1197480

#TimeUsernameProblemLanguageResultExecution timeMemory
1197480AvianshRoller Coaster Railroad (IOI16_railroad)C++20
34 / 100
36 ms8616 KiB
#include "railroad.h"
#include <bits/stdc++.h>

using namespace std;

long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
    int n = s.size();
    assert(n<=16);
    long long dp[n][(1<<n)];
    for(int i = 0;i<n;i++){
        fill(dp[i],dp[i]+(1<<n),2e18);
        dp[i][(1<<i)]=0;
    }
    for(int mask = 1;mask<(1<<n);mask++){
        for(int i = 0;i<n;i++){
            if((1<<i)&mask){
                for(int j = 0;j<n;j++){
                    if((1<<j)&mask){
                        if(j!=i){
                            dp[i][mask]=min(dp[i][mask],dp[j][mask^(1<<i)]+max(0,t[j]-s[i]));
                        }
                    }
                }
            }
        }
    }
    long long ans = 2e18;
    for(int i = 0;i<n;i++){
        ans=min(dp[i][(1<<n)-1],ans);
    }
    return ans;
}

Compilation message (stderr)

railroad.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...