| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1324861 | xyz7577 | Shortcut (IOI16_shortcut) | C++17 | 0 ms | 332 KiB |
#include <bits/stdc++.h>
using namespace std;
using int64=long long;
int64 find_shortcut(int n, vector<int> l, vector<int> d, int c) {
vector<int64> pos(n);
for (int i=1;i<n;i++) pos[i]=pos[i-1]+l[i-1];
vector<int64> d_plus_pos(n), d_minus_pos(n);
for (int i=0;i<n;i++) {
d_plus_pos[i]=d[i]+pos[i];
d_minus_pos[i]=d[i]-pos[i];
}
vector<int64> max_d_plus_excl(n), max_d_minus_excl(n);
for (int x=0; x<n;x++) {
int64 mp=LLONG_MIN, mm=LLONG_MIN;
for (int y=0;y<n;y++) {
if (y==x) continue;
mp=max(mp, d_plus_pos[y]);
mm=max(mm, d_minus_pos[y]);
}
max_d_plus_excl[x]=mp;
max_d_minus_excl[x]=mm;
}
int64 max_d_plus=*max_element(d_plus_pos.begin(), d_plus_pos.end());
int64 max_d_minus=*max_element(d_minus_pos.begin(), d_minus_pos.end());
int64 ans=LLONG_MAX;
for (int i=0;i<n;i++) {
for (int j=i+1;j<n;j++) {
int64 diam=0;
for (int x=0; x<n; x++) {
int64 max_normal=max(max_d_plus_excl[x]-pos[x]+d[x],max_d_minus_excl[x]+pos[x]+d[x]);
int64 max_via1=max(max_d_plus-pos[j]+d[x]+c,max_d_minus+pos[j]+d[x]+c);
int64 max_via2=max(max_d_plus-pos[i]+d[x]+c,max_d_minus+pos[i]+d[x]+c);
int64 best=min({max_normal, max_via1, max_via2});
diam=max(diam, best);
}
ans=min(ans, diam);
}
}
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... | ||||
