Submission #20121427
Source Code Expand
#include <atcoder/all>
using namespace atcoder;
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll INF = 1LL << 60;
int main()
{
ll n, c;
cin >> n >> c;
vector<ll> x(n);
vector<ll> v(n);
for (int i = 0; i < n; i++){
cin >> x[i] >> v[i];
}
// d[i] : v の累積和
vector<ll> d(n);
d[0] = v[0];
for (int i = 1; i < n; i++){
d[i] = d[i-1] + v[i];
}
// O - xi 時計まわりケースでの最大値
// 初期値は O-O (なにもせず退店)
vector<ll> g(n);
vector<ll> z(n);
if (d[0]-x[0] > 0){
g[0] = d[0]-x[0];
z[0] = x[0];
} else {
g[0] = 0;
z[0] = 0;
}
for (int i = 1; i < n; i++){
ll fi = d[i] - x[i];
if (fi > g[i-1]){
g[i] = fi;
z[i] = x[i];
} else {
g[i] = g[i-1];
z[i] = z[i-1];
}
}
ll ans = g[n-1];
ans = max(ans, d[n-1] - (c - x[0]));
// O-A-B または O-B-A (B: xi)
for (int i = 0; i < n-1; i++){
ll gainR = d[n-1] - d[i] - (c - x[i+1]);
ans = max(ans, gainR);
ll gainL = g[i];
ans = max(ans, gainL + gainR - z[i]);
ans = max(ans, gainL + gainR - (c - x[i+1]));
}
cout << ans << endl;
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Static Sushi |
| User | unnohideyuki |
| Language | C++ (GCC 9.2.1) |
| Score | 0 |
| Code Size | 1245 Byte |
| Status | WA |
| Exec Time | 83 ms |
| Memory | 7220 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 300 | 0 / 200 | ||||||||||
| Status |
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | a01, a02, a03, a04 |
| Subtask1 | a01, a02, a03, a04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29 |
| Subtask2 | a01, a02, a03, a04, b05, b06, b07, b08, b09, b10, b11, b12, b13, b14, b15, b16, b17, b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| a01 | AC | 4 ms | 3556 KiB |
| a02 | AC | 2 ms | 3556 KiB |
| a03 | AC | 2 ms | 3552 KiB |
| a04 | AC | 4 ms | 3604 KiB |
| b05 | AC | 2 ms | 3492 KiB |
| b06 | AC | 2 ms | 3420 KiB |
| b07 | AC | 2 ms | 3496 KiB |
| b08 | AC | 2 ms | 3544 KiB |
| b09 | AC | 2 ms | 3424 KiB |
| b10 | AC | 2 ms | 3420 KiB |
| b11 | AC | 3 ms | 3556 KiB |
| b12 | AC | 2 ms | 3560 KiB |
| b13 | AC | 2 ms | 3444 KiB |
| b14 | AC | 3 ms | 3560 KiB |
| b15 | AC | 2 ms | 3500 KiB |
| b16 | WA | 3 ms | 3500 KiB |
| b17 | AC | 2 ms | 3500 KiB |
| b18 | WA | 4 ms | 3644 KiB |
| b19 | AC | 2 ms | 3644 KiB |
| b20 | AC | 2 ms | 3524 KiB |
| b21 | WA | 4 ms | 3600 KiB |
| b22 | AC | 2 ms | 3500 KiB |
| b23 | AC | 2 ms | 3604 KiB |
| b24 | AC | 2 ms | 3524 KiB |
| b25 | AC | 2 ms | 3600 KiB |
| b26 | AC | 3 ms | 3644 KiB |
| b27 | AC | 2 ms | 3424 KiB |
| b28 | WA | 3 ms | 3420 KiB |
| b29 | AC | 2 ms | 3428 KiB |
| c30 | AC | 53 ms | 6992 KiB |
| c31 | AC | 65 ms | 7064 KiB |
| c32 | AC | 82 ms | 7128 KiB |
| c33 | AC | 83 ms | 6992 KiB |
| c34 | AC | 83 ms | 7136 KiB |
| c35 | AC | 46 ms | 7056 KiB |
| c36 | AC | 79 ms | 7168 KiB |
| c37 | WA | 78 ms | 7056 KiB |
| c38 | AC | 76 ms | 7064 KiB |
| c39 | AC | 78 ms | 7216 KiB |
| c40 | AC | 79 ms | 7060 KiB |
| c41 | WA | 79 ms | 7168 KiB |
| c42 | WA | 78 ms | 7068 KiB |
| c43 | AC | 14 ms | 3932 KiB |
| c44 | AC | 82 ms | 7124 KiB |
| c45 | AC | 4 ms | 3536 KiB |
| c46 | AC | 83 ms | 7144 KiB |
| c47 | AC | 2 ms | 3608 KiB |
| c48 | WA | 78 ms | 7220 KiB |
| c49 | WA | 78 ms | 7116 KiB |
| c50 | AC | 76 ms | 7116 KiB |