Submission #134669

#TimeUsernameProblemLanguageResultExecution timeMemory
134669Mahdi_JfriShortcut (IOI16_shortcut)C++14
23 / 100
2057 ms504 KiB
#include "shortcut.h" #include<bits/stdc++.h> using namespace std; #define ll long long #define pb push_back const int maxn = 5e3 + 20; ll s[maxn]; int d[maxn]; ll fn(int a , int b) { if(a > b) swap(a , b); return s[b] - s[a]; } long long find_shortcut(int n, std::vector<int> L, std::vector<int> D, int c) { for(int i = 0; i < n; i++) { d[i] = D[i]; if(i) s[i] = L[i - 1] + s[i - 1]; } ll ans = 1e18; for(int l = 0; l < n; l++) for(int r = l; r < n; r++) { ll res = 0; for(int a = 0; a < n; a++) for(int b = a + 1; b < n; b++) { ll dis = fn(a , b); dis = min(dis , fn(a , l) + c + fn(r , b)); dis = min(dis , fn(a , r) + c + fn(l , b)); dis += d[a] + d[b]; res = max(res , dis); } ans = min(ans , res); } return ans; }
#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...