二分都没用,就AC了。 record
#include<bits/stdc++.h>
using namespace std;
int n,m;
const int maxn=1000005;
int r[maxn];
struct dd{
int s,d,t;
}a[maxn];
int cha[maxn];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
scanf("%d",&r[i]);
for(int i=1;i<=m;i++)
scanf("%d%d%d",&a[i].d,&a[i].s,&a[i].t);
for(int i=1;i<=m;i++)
{
int s=a[i].s,t=a[i].t;
cha[s]+=a[i].d,cha[t+1]-=a[i].d;
}
int pos=1e9;
for(int i=1;i<=n;i++)
{
cha[i]+=cha[i-1];
if(cha[i]>r[i])
{
long long tmp=0;
for(int j=1;j<=m;j++)
{
if(a[j].s<=i && a[j].t>=i)
{
tmp+=a[j].d;
if(tmp>r[i])
{
pos=min(pos,j);
break;
}
}
}
}
}
if(pos==1e9)
printf("0");
else
printf("-1\n%d",pos);
}