This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
const long long INF = 1e18;
long long plan_roller_coaster(vector<int> s, vector<int> t){
int n = (int)s.size();
long long dp[(1<<n)][n];
for(int mk = 0; mk < (1<<n); ++mk)
for(int i = 0; i < n; ++i)
dp[mk][i] = INF;
for(int mk = 0; mk < n; ++mk)
dp[(1<<mk)][mk] = 0;
for(int mk = 0; mk < (1<<n); ++mk)
for(int i = 0; i < n; ++i)
if(mk>>i&1){
int mk2 = mk-(1<<i);
for(int j = 0; j < n; ++j)
if(mk2>>j&1)
dp[mk][i] = min(dp[mk][i], dp[mk2][j]+max(0, t[j]-s[i]));
}
long long answer = INF;
for(int i = 0; i < n; ++i)
answer = min(answer, dp[(1<<n)-1][i]);
return answer;
}
// int main(){
// long long answer = plan_roller_coaster({1, 4, 5, 6}, {7, 3, 8, 6});
// printf("%lld", answer);
// return 0;
// }
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |