Submission #758881

#TimeUsernameProblemLanguageResultExecution timeMemory
758881Dan4LifeRoller Coaster Railroad (IOI16_railroad)C++17
34 / 100
50 ms23380 KiB
#include <bits/stdc++.h>
#include "railroad.h"
using namespace std;
using ll = long long;
ll dp[1<<16][16];

ll plan_roller_coaster(vector<int> s, vector<int> t) {
    int n = s.size(); memset(dp,63,sizeof(dp));
    for(int i = 0; i < n; i++) dp[1<<i][i]=0;
    for(int m = 1; m < (1<<n); m++)
        for(int i = 0; i < n; i++) if((m>>i)&1)
            for(int j = 0; j < n; j++) if((m>>j)&1 and j!=i)
                dp[m][i] = min(dp[m][i], dp[m^(1<<i)][j]+(ll)max(0,t[j]-s[i]));
    return *min_element(dp[(1<<n)-1],dp[(1<<n)-1]+n);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...