1 条题解
-
0
#include <bits/stdc++.h> using namespace std; #define ll long long #define N 1000005 ll a[N], b[N]; struct P { int d, x, y; } p[N]; int n, m; bool check(int mid) {//肌肉👍 memset(b, 0, sizeof(b)); for (int j = 1; j <= mid; j++) { b[p[j].x] -= p[j].d; b[p[j].y + 1] += p[j].d; } for (int i = 1; i <= n; i++) { b[i] += b[i - 1]; if (a[i] + b[i] < 0) return true; } return false; } int main() { cin >> n >> m;//唐人输入 for (int i = 1; i <= n; i++) { cin >> a[i]; } for (int j = 1; j <= m; j++) { cin >> p[j].d >> p[j].x >> p[j].y; } int l = 1, r = m + 1; while (l < r) {//二分之1 int mid = (l + r) / 2; if (check(mid)) { r = mid; } else { l = mid + 1; } } if (l == m + 1) cout << 0; else cout << -1 << "\n" << l; //乐子之输出 }
- 1
信息
- ID
- 4358
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 62
- 已通过
- 12
- 上传者