Submission #1204586

#TimeUsernameProblemLanguageResultExecution timeMemory
1204586loiiii12358Roller Coaster Railroad (IOI16_railroad)C++20
34 / 100
44 ms9356 KiB
#include "railroad.h" #include <bits/stdc++.h> using namespace std; #define int long long int dp[1<<16][16],tmp; vector<int> mask[17]; long long plan_roller_coaster(std::vector<int32_t> s, std::vector<int32_t> t) { int n = (int) s.size(); if(n>20){ return 0; } for(int i=0;i<(1<<n);i++){ tmp=0; for(int j=0;j<n;j++){ if(i&(1<<j)){ tmp++; } dp[i][j]=1e18; } mask[tmp].push_back(i); } for(int i=0;i<n;i++){ dp[1<<i][i]=0; } for(int i=2;i<=n;i++){ for(int j=0;j<mask[i].size();j++){ for(int k=0;k<n;k++){ if(mask[i][j]&(1<<k)){ for(int l=0;l<n;l++){ if((mask[i][j]^(1<<k))&(1<<l)){ dp[mask[i][j]][k]=min(dp[mask[i][j]][k],dp[mask[i][j]^(1<<k)][l]+max(0,t[l]-s[k])); } } } } } } tmp=1e18; for(int i=0;i<n;i++){ tmp=min(tmp,dp[(1<<n)-1][i]); } return tmp; }

Compilation message (stderr)

railroad.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
railroad_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...