제출 #47298

#제출 시각아이디문제언어결과실행 시간메모리
47298TAMREFRoller Coaster Railroad (IOI16_railroad)C++11
34 / 100
75 ms9116 KiB
#include "railroad.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

ll dp[16][1<<16];

ll plan_roller_coaster(vector<int> s, vector<int> t) {
    int n = (int) s.size();

    if(n > 16) return 42;
    for(int i = 0; i < n; i++) fill(dp[i], dp[i] + (1 << n), LLONG_MAX);
    for(int i = 0; i < n; i++) dp[i][1<<i] = 0;

    for(int b = 1; b < (1 << n); b++){
        for(int i = 0; i < n; i++){
            if(!(b >> i & 1)) continue;
            for(int j = 0; j < n; j++){
                if(b >> j & 1) continue;
                ll &d = dp[j][b | (1 << j)];
                d = min(d, dp[i][b] + max(0, t[i]-s[j]));
            }
        }
    }
    ll ans = LLONG_MAX;
    for(int i = 0; i < n; i++){
        ans = min(ans, dp[i][(1<<n)-1]);
    }
    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...