Submission #299400

#TimeUsernameProblemLanguageResultExecution timeMemory
299400williamMBDKShortcut (IOI16_shortcut)C++11
0 / 100
1 ms384 KiB
#include<bits/stdc++.h> #include "shortcut.h" using namespace std; #define int long long int N, C; vector<signed> L, D; int find_shortcut(signed _N, std::vector<signed> _l, std::vector<signed> _d, signed _C){ L = _l, D = _d; N = _N; C = _C; vector<pair<int,int>> dp (N); pair<int,int> best = {0, -1}; for(int i = N - 1; i >= 0; i--){ dp[i] = best; dp[i].first += D[i]; if(i == 0) break; if(D[i] >= best.first){ best = {D[i], i}; } best.first += L[i-1]; } best = {0,-1}; int idx = -1; for(int i = 0; i < N; i++){ if(dp[i] > best) best = dp[i], idx = i; } vector<int> dist (N); for(int i = 1; i < N; i++){ dist[i] = dist[i-1] + L[i-1]; } int a = idx, b = best.second; //cout << a << " " << b << endl; //cout << best.first << endl; int res = LLONG_MAX; for(int i = 0; i < N; i++){ for(int k = i+1; k < N; k++){ int mx = 0; for(int j = 0; j < N; j++){ int d = dp[j].first; // fine? int worst = dp[j].second; //cout << j << " " << worst << " " << dp[j].first << endl; if(j < N - 1) d = min(d, D[j] + abs(dist[j] - dist[i]) + C + D[worst] + abs(dist[worst] - dist[k])); mx = max(d, mx); } res = min(res, mx); } } return res; }

Compilation message (stderr)

shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:31:6: warning: unused variable 'a' [-Wunused-variable]
   31 |  int a = idx, b = best.second;
      |      ^
shortcut.cpp:31:15: warning: unused variable 'b' [-Wunused-variable]
   31 |  int a = idx, b = best.second;
      |               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...