Submission #831389

#TimeUsernameProblemLanguageResultExecution timeMemory
831389OrazBShortcut (IOI16_shortcut)C++14
0 / 100
0 ms212 KiB
#include <bits/stdc++.h>
#include "shortcut.h"
using namespace std;
#define ll long long

const int N = 1e5+5;
ll pref[N], suff[N];

ll find_shortcut(int n, vector<int> l, vector<int> d, int c){
    for (int i = 0; i < n; i++){
        ll sum = 0;
        pref[i] = suff[i] = d[i];
        for (int j = i-1; j >= 0; j--){
            sum += l[j];
            pref[i] = max(pref[i], sum+d[j]); 
        }
        sum = l[i];
        for (int j = i+1; j < n; j++){
            suff[i] = max(suff[i], sum+d[j]);
            if (j == n-1) break;
            sum += l[j];
        }
    }
    ll mn = 1e18;
    for (int i = 0; i < n; i++){
        for (int j = i+1; j < n; j++){
            mn = min(mn, pref[i]+suff[j]+c);
        }
    }
    return mn;
}
#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...