Submission #1233129

#TimeUsernameProblemLanguageResultExecution timeMemory
1233129Saul0906Roller Coaster Railroad (IOI16_railroad)C++20
34 / 100
26 ms8616 KiB
#include "railroad.h"
#include <bits/stdc++.h>
#define all(a) a.begin(), a.end()
#define rep(a,b,c) for(int a=b; a<c; a++)
#define repa(a,b) for(auto a:b)
#define ll long long
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define pii pair<int, int>
#define fi first
#define se second
#define mid ((l+r)>>1)

using namespace std;
using vi = vector<int>;

const ll inf=1e18;

long long plan_roller_coaster(vector<int> s, vector<int> t) {
	int n = s.size();
	if(n>16) return -1;
	ll ans=inf;
	ll dp[1<<n][n];
	rep(i,0,1<<n) rep(j,0,n) dp[i][j]=inf;
	rep(i,0,n) dp[1<<i][i]=0;
	rep(i,1,1<<n){
		rep(j,0,n){
			if((i>>j)&1) continue;
			int z=i|(1ll<<j);
			rep(k,0,n) dp[z][j]=min(dp[z][j],dp[i][k]+max(0,t[k]-s[j]));
		}
	}
	rep(i,0,n) ans=min(ans,dp[(1<<n)-1][i]);
	return ans;
}

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...