이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
// #include "grader.cpp"
using namespace std;
typedef long long ll;
const ll MXN = 16;
const ll MXP = (1 << 16);
ll dp[MXN][MXP];
ll plan_roller_coaster (vector<int> S, vector<int> T){
vector<int> s, t;
for (auto x : S) s.push_back(x);
for (auto x : T) t.push_back(x);
ll n = s.size();
ll ans = 1e18;
ll pw = (1 << n);
for (ll mask = 1; mask < pw; mask++){
for (ll start = 0; start < n; start++){
if (((1 << start) & mask) == 0) continue;
ll nmask = mask ^ (1 << start);
if (nmask == 0)
dp[start][mask] = 0;
else{
for (ll next = 0; next < n; next++){
if (((1 << next) & nmask) == 0) continue;
dp[start][mask] = dp[next][nmask] + max(0ll, (ll)(t[start] - s[next]));
}
}
if (mask == pw - 1)
ans = min(ans, dp[start][mask]);
}
}
return ans;
}
// int main(){
// return 0;
// }
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |