Submission #239272

#TimeUsernameProblemLanguageResultExecution timeMemory
239272urd05Shortcut (IOI16_shortcut)C++14
23 / 100
2088 ms384 KiB
#include <bits/stdc++.h>
#include "shortcut.h"
using namespace std;

long long sum[1000000];

long long find_shortcut(int n,vector<int> l,vector<int> d,int c) {
    sum[0]=0;
    for(int i=0;i<n;i++) {
        sum[i+1]=sum[i]+l[i];
    }
    long long ret=1e15;
    for(int one=0;one<n;one++) {
        for(int two=one+1;two<n;two++) {
            long long maxi=0;
            for(int i=0;i<n;i++) {
                for(int j=i+1;j<n;j++) {
                    if (i<one) {
                        if (j<one) {
                            maxi=max(maxi,sum[j]-sum[i]+d[i]+d[j]);
                        }
                        else if (j<=two) {
                            maxi=max(maxi,min(sum[j]-sum[i]+d[i]+d[j],sum[one]-sum[i]+c+sum[two]-sum[j]+d[i]+d[j]));
                        }
                        else {
                            maxi=max(maxi,min(sum[j]-sum[i]+d[i]+d[j],sum[one]-sum[i]+c+sum[j]-sum[two]+d[i]+d[j]));
                        }
                    }
                    else if (i<=two) {
                        if (j<=two) {
                            maxi=max(maxi,min(sum[j]-sum[i]+d[i]+d[j],sum[i]-sum[one]+c+sum[two]-sum[j]+d[i]+d[j]));
                        }
                        else {
                            maxi=max(maxi,min(sum[j]-sum[i]+d[i]+d[j],sum[i]-sum[one]+c+sum[j]-sum[two]+d[i]+d[j]));
                        }
                    }
                    else {
                        maxi=max(maxi,sum[j]-sum[i]+d[i]+d[j]);
                    }
                }
            }
            ret=min(ret,maxi);
        }
    }
    return ret;
}
#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...