样例没过,但自己找不到错,求助大佬!
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e3 + 10;
int n, m, r, ans;
int f[maxn];
struct ee {
int start, end, eff;
} a[maxn];
bool cmp(ee a, ee b) {
return a.start < b.start;
}
void dp(){
for (int i = 1; i <= m; i++) {
for (int j = i - 1; j >= 1; j--) {
if (a[j].end <= a[i].start) {
f[i] = max(f[j], f[i]);
}
}
f[i] += a[i].eff;
ans = max(ans, f[i]);
}
}
int main() {
scanf("%d%d%d", &n, &m, &r);
for (int i = 1; i <= m; i++) {
scanf("%d%d%d", &a[i].start, &a[i].end +r, &a[i].eff);
}
sort(a + 1, a + m + 1, cmp);
dp();
printf("%d", ans);
return 0;
}