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
AC × 3
AC × 42
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