对于我这个刚学到二分的人,这道题太难了,我既不会线段树,又没学过差分,只能勇猛的用暴力试一试:
#include<bits/stdc++.h>
using namespace std;
int n,m,r[1000010];
struct node{
int d,s,t;
}p[1000010];
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) scanf("%d",&r[i]);
for(int i=1;i<=m;i++){
scanf("%d%d%d",&p[i].d,&p[i].s,&p[i].t);
for(int j=p[i].s;j<=p[i].t;j++){
r[j]-=p[i].d;
if(r[j]<0){
cout<<"-1"<<endl<<i;
return 0;
}
}
}
cout<<0;
return 0;
}
如果你只想得60分,那你就抄吧。
如果你是大佬,请帮帮我,我一定会关注的。