Submission #1020836

#TimeUsernameProblemLanguageResultExecution timeMemory
1020836vjudge1Shortcut (IOI16_shortcut)C++17
0 / 100
0 ms348 KiB
#include <bits/stdc++.h> #define ent '\n' //#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") //#pragma GCC optimize("Ofast,unroll-loops,fast-math,O3") typedef long long ll; using namespace std; const int maxn = 2e5+12; ll pref[maxn]; int n; long long find_shortcut(int N, vector <int> l, vector <int> d, int c){ n = N; for(int i=1;i<n;i++){ pref[i] = pref[i-1] + l[i-1]; } ll ans = 1e18; for(int x=0;x<n;x++){ for(int y=n-1;y>x;y--){ ll val = *max_element(d.begin(), d.end()), mn = 0; ll mxl = 0, mxr = 0; for(int i=0;i<=x;i++) { if(i != x) mxl = max(mxl, pref[x] - pref[i] + d[i]); val = max(val, pref[i] + d[i] + mn); mn = max(mn, d[i] - pref[i]); } if(val >= ans) continue; mn = -pref[y]; for(int i=y;i<n;i++){ if(i != y) mxr = max(mxr, pref[i] - pref[y] + d[i]); val = max(val, pref[i] + d[i] + mn); mn = max(mn, d[i] - pref[i]); } ll cur = val; val = max(val, mxl + mxr + min(pref[y] - pref[x], (ll)c)); if(val >= ans) continue; for(int i=x;i<=y;i++){ val = max(val, mxl + min(pref[i] - pref[x], pref[y] - pref[i] + c) + d[i]); val = max(val, mxr + min(pref[y] - pref[i], pref[i] - pref[x] + c) + d[i]); for(int j=i+1;j<=y;j++){ val = max(val, min(pref[j] - pref[i], pref[i] - pref[x] + pref[y] - pref[j] + c) + d[i] + d[j]); } if(val >= ans) break; } if(val >= ans) break; ans = min(ans, val); } } return ans; }

Compilation message (stderr)

shortcut.cpp: In function 'long long int find_shortcut(int, std::vector<int>, std::vector<int>, int)':
shortcut.cpp:36:16: warning: unused variable 'cur' [-Wunused-variable]
   36 |             ll cur = val;
      |                ^~~
#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...