Submission #1178388

#TimeUsernameProblemLanguageResultExecution timeMemory
1178388HappyCapybaraRoller Coaster Railroad (IOI16_railroad)C++20
34 / 100
55 ms9544 KiB
#include<bits/stdc++.h>
#include "railroad.h"
using namespace std;

#define ll long long

int n;
vector<int> s, t;
vector<vector<ll>> dp;

ll solve(int prev, int bm){
    if (bm == 0) dp[prev][bm] = 0;
    if (dp[prev][bm] != 1ll<<50) return dp[prev][bm];
    for (int i=0; i<n; i++){
        if (bm & (1<<i)){
            if (prev != 0) dp[prev][bm] = min(dp[prev][bm], max(0, t[prev-1]-s[i])+solve(i+1, bm ^ (1<<i)));
            else dp[prev][bm] = min(dp[prev][bm], solve(i+1, bm ^ (1<<i)));
        }
    }
    return dp[prev][bm];
}

ll plan_roller_coaster(vector<int> s, vector<int> t){
    n = s.size();
    ::s = s;
    ::t = t;
    dp.resize(n+1, vector<ll>(1<<n, 1ll<<50));
    return solve(0, (1<<n)-1);
}

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