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
AC × 4
AC × 25
WA × 4
AC × 41
WA × 9
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