Submission #100030

#TimeUsernameProblemLanguageResultExecution timeMemory
100030ShaneOngRoller Coaster Railroad (IOI16_railroad)C++14
34 / 100
155 ms9912 KiB
#include "railroad.h" #include <bits/stdc++.h> #define INF 10000000000000009ll using namespace std; typedef long long ll; int n; ll memo[17][(1<<16)+10]; vector<int> a,b; ll dp(int i, int bitmask){ if(bitmask==((1<<n)-1)){ //printf("test\n"); return memo[i][bitmask]=0ll; } if(memo[i][bitmask]!=-1ll){ return memo[i][bitmask]; } //printf("%d %d\n",i,bitmask); memo[i][bitmask]=INF; for(int x=0;x<n;x++){ if(((1<<x)&bitmask)==0){ memo[i][bitmask]=min(memo[i][bitmask],dp(x,bitmask|(1<<x))+max(0ll,(ll)b[i]-a[x])); } } return memo[i][bitmask]; } long long plan_roller_coaster(vector<int> s, vector<int> t) { n = (int) s.size(); //printf("%d\n",n); a=s,b=t; for(int x=0;x<n;x++){ for(int y=0;y<=(1<<n);y++) memo[x][y]=-1ll; } ll ans=INF; for(int x=0;x<n;x++) ans=min(ans,dp(x,(1<<x))); return ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...