Submission #1734730
Source Code Expand
#include<bits/stdc++.h> using namespace std; #define MAXN 100005 template <typename T> void read(T &x) { x = 0; int f = 1; char c = getchar(); for (; !isdigit(c); c = getchar()) if (c == '-') f = -f; for (; isdigit(c); c = getchar()) x = x * 10 + c - '0'; x *= f; } int a[MAXN], b[MAXN], c[MAXN]; int X, n, q, r[MAXN]; int main() { read(X), read(n); b[0] = X; for (int i = 1; i <= n; i++) { read(r[i]); if (i % 2 == 1) { int delta = r[i] - r[i - 1]; if (c[i - 1] >= delta) { a[i] = a[i - 1]; b[i] = b[i - 1]; c[i] = c[i - 1] - delta; continue; } int tmp = c[i - 1] + b[i - 1] - a[i - 1]; if (tmp <= delta) { a[i] = b[i] = X; c[i] = 0; continue; } a[i] = a[i - 1] + delta - c[i - 1]; b[i] = b[i - 1]; c[i] = 0; } else { int delta = r[i] - r[i - 1]; int tmp = c[i - 1] + b[i - 1] - a[i - 1]; if (X - tmp >= delta) { a[i] = a[i - 1]; b[i] = b[i - 1]; c[i] = c[i - 1] + delta; continue; } if (X - c[i - 1] <= delta) { a[i] = b[i] = 0; c[i] = X; continue; } a[i] = a[i - 1]; b[i] = b[i - 1] - (delta - (X - tmp)); c[i] = X - (b[i] - a[i]); } } read(q); int pos = 0; for (int i = 1; i <= q; i++) { int t, x; read(t), read(x); while (pos < n && t >= r[pos + 1]) pos++; int tmp = c[pos], tnp = t - r[pos]; if (x >= b[pos]) tmp = c[pos] + b[pos] - a[pos]; else if (x >= a[pos]) tmp = c[pos] + x - a[pos]; if (pos & 1) tmp = min(tmp + tnp, X); else tmp = max(tmp - tnp, 0); printf("%d\n", tmp); } return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Sandglass |
User | cz_xuyixuan |
Language | C++14 (GCC 5.4.1) |
Score | 700 |
Code Size | 1615 Byte |
Status | AC |
Exec Time | 36 ms |
Memory | 2816 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 700 / 700 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | 0_000.txt, 0_001.txt, 0_002.txt |
All | 0_000.txt, 0_001.txt, 0_002.txt, 1_003.txt, 1_004.txt, 1_005.txt, 1_006.txt, 1_007.txt, 1_008.txt, 1_009.txt, 1_010.txt, 1_011.txt, 1_012.txt, 1_013.txt, 1_014.txt, 1_015.txt, 1_016.txt, 1_017.txt, 1_018.txt, 1_019.txt, 1_020.txt, 1_021.txt, 1_022.txt, 1_023.txt, 1_024.txt, 1_025.txt, 1_026.txt, 1_027.txt, 1_028.txt, 1_029.txt, 1_030.txt, 1_031.txt, 1_032.txt, 1_033.txt, 1_034.txt, 1_035.txt, 1_036.txt, 1_037.txt, 1_038.txt, 1_039.txt, 1_040.txt, 1_041.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
0_000.txt | AC | 1 ms | 256 KB |
0_001.txt | AC | 1 ms | 256 KB |
0_002.txt | AC | 1 ms | 256 KB |
1_003.txt | AC | 24 ms | 2048 KB |
1_004.txt | AC | 25 ms | 2048 KB |
1_005.txt | AC | 28 ms | 2048 KB |
1_006.txt | AC | 23 ms | 2048 KB |
1_007.txt | AC | 25 ms | 2048 KB |
1_008.txt | AC | 28 ms | 2048 KB |
1_009.txt | AC | 24 ms | 2048 KB |
1_010.txt | AC | 27 ms | 2048 KB |
1_011.txt | AC | 30 ms | 2048 KB |
1_012.txt | AC | 25 ms | 2176 KB |
1_013.txt | AC | 27 ms | 2176 KB |
1_014.txt | AC | 30 ms | 2176 KB |
1_015.txt | AC | 26 ms | 2304 KB |
1_016.txt | AC | 28 ms | 2304 KB |
1_017.txt | AC | 32 ms | 2176 KB |
1_018.txt | AC | 26 ms | 2432 KB |
1_019.txt | AC | 29 ms | 2432 KB |
1_020.txt | AC | 32 ms | 2304 KB |
1_021.txt | AC | 27 ms | 2304 KB |
1_022.txt | AC | 30 ms | 2560 KB |
1_023.txt | AC | 33 ms | 2432 KB |
1_024.txt | AC | 28 ms | 2304 KB |
1_025.txt | AC | 31 ms | 2560 KB |
1_026.txt | AC | 34 ms | 2560 KB |
1_027.txt | AC | 30 ms | 2304 KB |
1_028.txt | AC | 31 ms | 2432 KB |
1_029.txt | AC | 35 ms | 2688 KB |
1_030.txt | AC | 31 ms | 2432 KB |
1_031.txt | AC | 32 ms | 2432 KB |
1_032.txt | AC | 36 ms | 2816 KB |
1_033.txt | AC | 23 ms | 1024 KB |
1_034.txt | AC | 23 ms | 1024 KB |
1_035.txt | AC | 32 ms | 2560 KB |
1_036.txt | AC | 25 ms | 1152 KB |
1_037.txt | AC | 25 ms | 1152 KB |
1_038.txt | AC | 34 ms | 2688 KB |
1_039.txt | AC | 26 ms | 896 KB |
1_040.txt | AC | 26 ms | 1280 KB |
1_041.txt | AC | 36 ms | 2816 KB |