Submission #206357

#TimeUsernameProblemLanguageResultExecution timeMemory
206357TAISA_Roller Coaster Railroad (IOI16_railroad)C++14
34 / 100
81 ms11256 KiB
#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;
using ll=long long;
const ll INF=1LL<<60;
long long plan_roller_coaster(std::vector<int> s, std::vector<int> t) {
    int n = (int) s.size();
    assert(n<=16);
    vector<vector<ll>> dp(1<<n,vector<ll>(n,INF));
    for(int i=0;i<n;i++)dp[0][i]=0;
    for(int i=0;i<(1<<n);i++){
		for(int j=0;j<n;j++){
			if(((i>>j)&1)||i==0){
				for(int k=0;k<n;k++){
					if((i>>k)&1)continue;
					dp[i|(1<<k)][k]=min(dp[i|(1<<k)][k],dp[i][j]+(i==0?0:max(0,t[j]-s[k])));
				}
			}
		}
	}
	ll res=INF;
	for(int i=0;i<n;i++){
		res=min(res,dp[(1<<n)-1][i]);
	}
    return res;
}
/*
4
1 7
4 3
5 8
6 6
*/
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...