# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
128270 | ekrem | Shortcut (IOI16_shortcut) | C++98 | 702 ms | 476 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "shortcut.h"
#include <bits/stdc++.h>
#define st first
#define nd second
#define mp make_pair
#define pb push_back
#define sol (k+k)
#define sag (k+k+1)
#define ort1 ((bas+bas+son)/3)
#define ort2 ((bas+son+son)/3)
#define coc g[node][i]
#define mod 1000000007
#define inf 1000000000000000009
#define N 1000005
using namespace std;
typedef long long ll;
typedef pair < int , int > ii;
typedef vector < int > vi;
ll n, c, x, y, ans = inf, pre[N];
vi a, d;
ll bul(int i, int j){
return d[i] + d[j] + min(pre[j] - pre[i], abs(pre[x]-pre[i]) + abs(pre[y]-pre[j]) + c);
}
ll dene(int yy){
y = yy;
ll mx = 0;
for(int i = 0; i < n; i++)
for(int j = i + 1; j < n; j++)
mx = max(mx, bul(i, j));
return mx;
}
ll find_shortcut(int nn, vi l, vi dd, int cc){n = nn;c = cc;
a = l;d = dd;
for(int i = 0; i < n - 1; i++)
pre[i + 1] = pre[i] + a[i];
int onc = 0;
for(x = 0; x < n; x++){
ll cvp = inf, opt = N;
int bas = x + 1, son = n - 1;
while(1 < son - bas){
// if(x == 1)cout << bas << " " << son << endl;
if(dene(ort1) < dene(ort2))
son = ort2;
else
bas = ort1 + 1;
}
// for(y = x + 1; y < n; y++){
// ll mx = dene(y);
// cout << x << " " << y << " " << mx << endl;
// if(mx < cvp){
// cvp = mx;
// opt = y;
// }
// }
// cout << cvp << bas << " " << son << " " << dene(bas) << " " << dene(son) << endl;
// cout << opt << " " << onc << endl;
ans = min(ans, dene(bas));
ans = min(ans, dene(son));
// if(opt < onc)assert(0);
// onc = opt;
}
return ans;
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |