Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
32857 | gaochunzhen | 【S】T3 | C++ | 运行超时 | 60 | 1000 MS | 1824 KB | 1089 | 2024-10-02 13:16:08 |
#include <bits/stdc++.h> using namespace std; typedef long long ll; const int N = 2e5 + 9; int n, q, a[N], b[N]; namespace sub1 { bool chk(int l, int r) { if (!a[l] || !a[r]) return 0; for (int i = l; i <= r; i++) b[i] = a[i]; int tp = 1; for (int i = l; i < r; i++) { if (b[i] > b[i + 1]) return 0; b[i + 1] -= b[i]; if (!tp && !b[i + 1]) return 0; tp ^= 1; } return b[r] == ((r - l + 1) & 1); } void Main() { while (q--) { int op, l, r, x; scanf("%d%d%d", &op, &l, &r); if (op == 1) { scanf("%d", &x); for (int i = l; i <= r; i++) a[i] += x; } else { if (chk(l, r)) printf("Yes\n"); else printf("No\n"); } } } } signed main() { scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); } scanf("%d", &q); sub1::Main(); fclose(stdin), fclose(stdout); return 0; }