# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
299393 | williamMBDK | Shortcut (IOI16_shortcut) | C++11 | 1 ms | 256 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<bits/stdc++.h>
#include "shortcut.h"
using namespace std;
#define int long long
int N, C;
vector<signed> L, D;
int find_shortcut(signed _N, std::vector<signed> _l, std::vector<signed> _d, signed _C){
L = _l, D = _d;
N = _N;
C = _C;
vector<pair<int,int>> dp (N);
pair<int,int> best = {0, -1};
for(int i = N - 1; i >= 0; i--){
dp[i] = best;
dp[i].first += D[i];
if(i == 0) break;
if(D[i] >= best.first){
best = {D[i], i};
}
best.first += L[i-1];
}
best = {0,-1};
int idx = -1;
for(int i = 0; i < N; i++){
if(dp[i] > best) best = dp[i], idx = i;
}
vector<int> dist (N);
for(int i = 1; i < N; i++){
dist[i] = dist[i-1] + L[i-1];
}
int a = idx, b = best.second;
//cout << a << " " << b << endl;
//cout << best.first << endl;
int res = LLONG_MAX;
for(int i = 0; i < N; i++){
int mx = 0;
for(int j = 0; j < N - 1; j++){
int d = dp[j].first; // fine?
int worst = dp[j].second;
//cout << j << " " << worst << " " << dp[j].first << endl;
d = min(d, D[j] + abs(dist[j] - dist[i]) + C + D[worst]);
mx = max(d, mx);
}
//cout << i << " " << mx << endl;
res = min(res, mx);
}
return res;
}
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... |