#8 & #21 WA 95pts求调
查看原帖
#8 & #21 WA 95pts求调
1244161
jexst楼主2025/8/2 22:14

注释给到啦

#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int n, m, room[N], c[N];
struct node{
	int d, s, t;
}a[N];
bool check(int mid) {
	memset(c, 0, sizeof(c));
	for (int i = 1; i <= mid; i++) {//租借教室 
		c[a[i].s] += a[i].d;//开始的那一天借上 
		c[a[i].t + 1] -= a[i].d;//最后的一天还回去 
	}
	for (int i = 1; i < n; i++) {
		c[i + 1] += c[i];//统计用的教室 
		if (c[i] > room[i]) {//教室不够用了 
			return false;
		}
	}
	return true;
}
int main(){
	cin >> n >> m;
	for (int i = 1; i <= n; i++) cin >> room[i];
	for (int i = 1; i <= m; i++) cin >> a[i].d >> a[i].s >> a[i].t;
	int l = 1, r = m;//二分订单数量
	while (l < r) {
		int mid = (l + r) / 2;
		if (check(mid)) l = mid + 1;
		else r = mid;
	} 
	cout << -1 << endl << l;
	return 0;
}
2025/8/2 22:14
加载中...