Submission #423909

#TimeUsernameProblemLanguageResultExecution timeMemory
423909kwongwengRoller Coaster Railroad (IOI16_railroad)C++17
34 / 100
267 ms524292 KiB
#include "railroad.h" #include <bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<int> vi; #define FOR(i,a,b) for(int i = a; i < b; i++) ll plan_roller_coaster(vi s, vi t) { int n = (int) s.size(); ll dp[(1<<n)][n]; ll INF = 1000000000000000000; FOR(mask, 0, (1<<n)){ FOR(i, 0, n){ dp[mask][i] = INF; } } FOR(i, 0, n){ dp[(1<<i)][i] = 0; } FOR(mask, 1, (1<<n)){ FOR(i, 0, n){ if (mask & (1<<i) == 0) continue; FOR(j, 0, n){ if (i == j) continue; if (mask & (1<<j) == 0) continue; dp[mask][i] = min(dp[mask][i], dp[mask ^ (1<<i)][j] + max(0, t[j]-s[i])); } } } ll ans = INF; FOR(i, 0, n){ ans = min(ans, dp[(1<<n)-1][i]); } return ans; }

Compilation message (stderr)

railroad.cpp: In function 'll plan_roller_coaster(vi, vi)':
railroad.cpp:22:31: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   22 |             if (mask & (1<<i) == 0) continue;
      |                        ~~~~~~~^~~~
railroad.cpp:25:35: warning: suggest parentheses around comparison in operand of '&' [-Wparentheses]
   25 |                 if (mask & (1<<j) == 0) continue;
      |                            ~~~~~~~^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...