Submission #128270

#TimeUsernameProblemLanguageResultExecution timeMemory
128270ekremShortcut (IOI16_shortcut)C++98
23 / 100
702 ms476 KiB
#include "shortcut.h" #include <bits/stdc++.h> #define st first #define nd second #define mp make_pair #define pb push_back #define sol (k+k) #define sag (k+k+1) #define ort1 ((bas+bas+son)/3) #define ort2 ((bas+son+son)/3) #define coc g[node][i] #define mod 1000000007 #define inf 1000000000000000009 #define N 1000005 using namespace std; typedef long long ll; typedef pair < int , int > ii; typedef vector < int > vi; ll n, c, x, y, ans = inf, pre[N]; vi a, d; ll bul(int i, int j){ return d[i] + d[j] + min(pre[j] - pre[i], abs(pre[x]-pre[i]) + abs(pre[y]-pre[j]) + c); } ll dene(int yy){ y = yy; ll mx = 0; for(int i = 0; i < n; i++) for(int j = i + 1; j < n; j++) mx = max(mx, bul(i, j)); return mx; } ll find_shortcut(int nn, vi l, vi dd, int cc){n = nn;c = cc; a = l;d = dd; for(int i = 0; i < n - 1; i++) pre[i + 1] = pre[i] + a[i]; int onc = 0; for(x = 0; x < n; x++){ ll cvp = inf, opt = N; int bas = x + 1, son = n - 1; while(1 < son - bas){ // if(x == 1)cout << bas << " " << son << endl; if(dene(ort1) < dene(ort2)) son = ort2; else bas = ort1 + 1; } // for(y = x + 1; y < n; y++){ // ll mx = dene(y); // cout << x << " " << y << " " << mx << endl; // if(mx < cvp){ // cvp = mx; // opt = y; // } // } // cout << cvp << bas << " " << son << " " << dene(bas) << " " << dene(son) << endl; // cout << opt << " " << onc << endl; ans = min(ans, dene(bas)); ans = min(ans, dene(son)); // if(opt < onc)assert(0); // onc = opt; } return ans; }

Compilation message (stderr)

shortcut.cpp: In function 'll find_shortcut(int, vi, vi, int)':
shortcut.cpp:43:6: warning: unused variable 'cvp' [-Wunused-variable]
   ll cvp = inf, opt = N;
      ^~~
shortcut.cpp:43:17: warning: unused variable 'opt' [-Wunused-variable]
   ll cvp = inf, opt = N;
                 ^~~
shortcut.cpp:41:6: warning: unused variable 'onc' [-Wunused-variable]
  int onc = 0;
      ^~~
#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...