Submission #352640

#TimeUsernameProblemLanguageResultExecution timeMemory
352640juggernautRoller Coaster Railroad (IOI16_railroad)C++14
0 / 100
77 ms26604 KiB
#include"railroad.h"
#include<bits/stdc++.h>
#ifndef EVAL
#include"grader.cpp"
#endif
using namespace std;
typedef long long ll;
vector<int>s,t;
int n;
ll inf=2e9,dp[16][65536];
ll rec(int v,int mask){
    if(dp[v][mask]!=-1)return dp[v][mask];
    if((1<<v)==mask)return dp[v][mask]=0ll;
    dp[v][mask]=inf;
    for(int i=0;i<n;i++)if(mask>>i&1)
        dp[v][mask]=min(dp[v][mask],max(0,t[v]-s[i])+rec(i,mask^(1<<v)));
    return dp[v][mask];
}
ll plan_roller_coaster(vector<int>S,vector<int>T){s=S,t=T,n=s.size();
    for(int i=0;i<16;i++)
        for(int j=0;j<65536;j++)dp[i][j]=-1;
    ll res=inf;
    for(int i=0;i<n;i++)res=min(res,rec(i,(1<<n)-1));
    return res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...