| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1324864 | 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];
int64 ans=LLONG_MAX;
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];
}
for (int i=0;i<n;i++) {
for (int j=i+1; j<n; j++) {
vector<int64> pre_max_plus(n), pre_max_minus(n), suf_max_plus(n), suf_max_minus(n);
pre_max_plus[0]=d_plus_pos[0]; pre_max_minus[0] = d_minus_pos[0];
for (int k=1;k<n; k++) {
pre_max_plus[k]=max(pre_max_plus[k-1], d_plus_pos[k]);
pre_max_minus[k]=max(pre_max_minus[k-1], d_minus_pos[k]);
}
suf_max_plus[n-1]=d_plus_pos[n-1]; suf_max_minus[n-1]=d_minus_pos[n-1];
for (int k=n-2; k>=0; k--) {
suf_max_plus[k]=max(suf_max_plus[k+1], d_plus_pos[k]);
suf_max_minus[k]=max(suf_max_minus[k+1], d_minus_pos[k]);
}
int64 diam=0;
for (int x=0; x<n;x++) {
int64 max_normal=LLONG_MIN;
if (x>0) max_normal=max(max_normal, pre_max_plus[x-1]-pos[x]);
if (x<n-1) max_normal=max(max_normal, suf_max_minus[x+1]+pos[x]);
max_normal+=d[x];
int64 max_via1=max(max(d_plus_pos[j]-pos[j]+d[x]+c,d_minus_pos[j]+pos[j]+d[x]+c),LLONG_MIN);
int64 max_via2=max(max(d_plus_pos[i]-pos[i]+d[x]+c,d_minus_pos[i]+pos[i]+d[x]+c),LLONG_MIN);
int64 best=min({max_normal, max_via1, max_via2});
diam=max(diam, best);
}
ans=min(ans, diam);
}
}
return ans;
}
컴파일 시 표준 에러 (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... | ||||
