Submission #1020620

#TimeUsernameProblemLanguageResultExecution timeMemory
1020620vjudge1Shortcut (IOI16_shortcut)C++17
0 / 100
1 ms596 KiB
#include "shortcut.h" #include<bits/stdc++.h> using namespace std; #define pii pair<int, int> #define ll long long #define pb push_back ll b[200100]; long long find_shortcut(int n, std::vector<int> dl, std::vector<int> d, int c) { ll ans = 1e18; for(int l=0; l<n; l++){ for(int r=l+1; r<n; r++){ ll sum = 0; b[l] = 0; for(int i=l; i>=0; i--){ b[l] = max(b[l], sum + d[i]); if(i > 0) sum += dl[i-1]; } b[r] = 0; sum = 0; for(int i=r; i<n; i++){ b[r] = max(b[r], sum + d[i]); if(i < n - 1) sum += dl[i]; } for(int i=l + 1; i<=r-1; i++){ b[i] = d[i]; } sum = c; for(int i=l; i<r; i++){ sum += dl[i]; } //cout<<l<<' '<<r<<' '<<sum<<'\n'; //for(int i=l; i<=r; i++){ // cout<<b[i]<<' '; //} //cout<<"\n___________________\n"; ll res = 0; for(int i=l; i<=r; i++){ ll dsum = 0; for(int j=i-1; j>=0; j--){ dsum += dl[j]; res = max(res, min(dsum, sum - dsum) + b[i] + b[j]); } } for(int i=0; i<=l; i++){ ll dsum = 0; for(int j=i-1; j>=0; j--){ dsum += dl[j]; res = max(res, dsum + d[i] + d[j]); } } for(int i=r; i<n; i++){ ll dsum = 0; for(int j=i-1; j>=r; j--){ dsum += dl[j]; res = max(res, dsum + d[i] + d[j]); } } 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...