Submission #1314143

#TimeUsernameProblemLanguageResultExecution timeMemory
1314143activedeltorreShortcut (IOI16_shortcut)C++20
31 / 100
2092 ms408 KiB
#include "shortcut.h" using namespace std; #include <vector> #include <iostream> long long inf=1e17; long long spar[100005]; long long dist(int a,int b,int c,int d,int add) { long long minim=inf; minim=min(minim,spar[b]-spar[a]); minim=min(minim,abs(spar[b]-spar[d])+abs(spar[a]-spar[c])+add); return minim; } long long find_shortcut(int n, std::vector<int> l, std::vector<int> d, int c) { for(int i=2; i<=n; i++) { spar[i]=spar[i-1]+l[i-2]; } long long best=0; for(int z=1; z<=n; z++) { for(int z2=z+1; z2<=n; z2++) { best=max(best,spar[z2]-spar[z]+d[z-1]+d[z2-1]); } } for(int i=1; i<=n; i++) { for(int j=i+1; j<=n; j++) { long long worst=0; if(c<spar[j]-spar[i]) { for(int z=1; z<=n; z++) { for(int z2=z+1; z2<=n; z2++) { worst=max(worst,dist(z,z2,i,j,c)+d[z-1]+d[z2-1]); } } best=min(best,worst); } } } return best; }

Compilation message (stderr)

shortcut.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
shortcut_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...