@[PerfectJames](/space/show?uid=66803) 同学,你的排版...
by aminoas @ 2019-04-11 18:42:17
$\tiny\color{white}\text{因为你WA了五个点(逃~}$
by ArachnidaQueen @ 2019-04-11 18:50:38
同学,你的排版...
by AC自动机_ @ 2019-04-11 19:12:21
建议您按一下ctrl shift a
by shao0320 @ 2019-04-11 19:30:14
```cpp
#include <bits/stdc++.h>
using namespace std;
const int N=1e7+5;
int n,m;
int r[N],d[N],b[N],c[N],diff[N],need[N];
bool check(int x)
{ memset(diff,0,sizeof(diff)); for(int i=1;i<=x;i++){ diff[b[i]]+=d[i]; diff[c[i]+1]-=d[i]; } for(int i=1;i<=n;i++){ need[i]=need[i-1]+diff[i]; if(need[i]>r[i]) return 0; } return 1;
}
int main()
{ cin>>n>>m; for(int i=1;i<=n;i++) cin>>r[i]; for(int i=1;i<=m;i++) cin>>d[i]>>b[i]>>c[i]; if(check(m)){ cout<<0; return 0; } int l=1,r=m; while(l<r){ int mid=(l+r)>>1; if(check(mid)) l=mid+1;else r=mid-1; } cout<<-1<<endl; cout<<l<<endl; return 0;
}
```
by PerfectJames @ 2019-04-14 08:01:42
```
#include <bits/stdc++.h>
using namespace std;
const int N=1e7+5;
int n,m;
int r[N],d[N],b[N],c[N],diff[N],need[N];
bool check(int x)
{
memset(diff,0,sizeof(diff));
for(int i=1;i<=x;i++){
diff[b[i]]+=d[i];
diff[c[i]+1]-=d[i];
}
for(int i=1;i<=n;i++){
need[i]=need[i-1]+diff[i];
if(need[i]>r[i]) return 0;
}
return 1;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>r[i];
for(int i=1;i<=m;i++) cin>>d[i]>>b[i]>>c[i];
if(check(m)){
cout<<0;
return 0;
}
int l=1,r=m;
while(l<r){
int mid=(l+r)>>1;
if(check(mid)) l=mid+1;else r=mid-1;
}
cout<<-1<<endl;
cout<<l<<endl;
return 0;
}
by PerfectJames @ 2019-04-14 08:31:04