我样例过不去,但交上去100全过QAQ
#include<bits/stdc++.h>
#define ll long long
#define fr(m,n) for(ll i=m;i<=n;i++)
#define fo(m,n) for(ll i=m;i>=n;i--)
using namespace std;
const ll M=1e7+11110;
ll r(){
ll sum=0,f=1;
char c=getchar();
while(c>'9'||c<'0'){
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9'){
sum*=10;
sum+=c-'0';
c=getchar();
}
return sum*f;
}
ll a[M],cc[M],he[M],sum=0;
ll n,m,d[M],s[M],t[M];
int main(){
n=r(),m=r();
fr(1,n) a[i]=r();
fr(1,m){
d[i]=r(),s[i]=r(),t[i]=r();
cc[s[i]]+=d[i],cc[t[i]+1]-=d[i];
}
fr(1,n) he[i]=he[i-1]+cc[i];
fr(1,n) if(he[i]>a[i]){
cout<<"-1"<<endl;
for(ll j=1;j<=m;j++){
if(s[j]<=i&&t[j]>=i) sum+=d[j];
if(sum>a[i]){
cout<<j<<endl;
return 0;
}
}
return 0;
}
cout<<"0"<<endl;
return 0;
}
样例:
输入;
4 3
2 5 4 3
2 1 3
3 2 4
4 2 4
输出
-1
2
我的输出:
-1
3