题解(不用快排)
2024-07-26 14:19:34
发布于:江苏
13阅读
0回复
0点赞
#include <bits/stdc++.h>
using namespace std;
struct Tree {
int s , e , num;
} t[30005];
int n , m , ans;
bool used[30005];
bool cmp(Tree x , Tree y) {
return x.e < y.e;
}
int main() {
cin >> n >> m;
for (int i = 1 ; i <= m ; i++) {
cin >> t[i].s >> t[i].e >> t[i].num;
}
sort(t + 1 , t + m + 1 , cmp);
memset(used , 0 , sizeof used);
for (int i = 1 ; i <= m ; i++) {
int cnt = 0;
for (int j = t[i].s ; j <= t[i].e ; j++) {
if (used[j]) {
cnt++;
}
}
if (cnt >= t[i].num) {
continue;
}
for (int j = t[i].e ; j >= t[i].s ; j--) {
if (!used[j]) {
used[j] = 1;
cnt++;
ans++;
if (cnt >= t[i].num) {
break;
}
}
}
}
cout << ans;
return 0;
}
这里空空如也
有帮助,赞一个