#include <cstdio>
#include <memory.h>
#define maxn 1000000
using namespace std;
int ans;
int n, m;
int r[maxn + 5], d[maxn + 5], s[maxn + 5], t[maxn + 5];
// 输入
void input()
{
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", &d[i], &s[i], &t[i]);
}
// 检查答案是否可行
bool check(int x)
{
printf("1");
int cf[maxn], sum[maxn];
memset(cf, 0, sizeof(cf));
for (int i = 1; i <= x; i++)
{
cf[s[i]] += d[i];
cf[t[i] + 1] -= d[i];
}
for (int i = 1; i <= n; i++)
{
sum[i] = cf[i] + sum[i - 1];
if (sum[i] > r[i])
return 0;
}
return 1;
}
// 二分
int BiSearch()
{
int l = 1, ri = m;
while (l < ri)
{
int mid = (l + ri) >> 1;
if (check(mid))
l = mid + 1;
else
ri = mid;
}
return l;
}
int main()
{
input();
if (check(m))
{
printf("0");
return 0;
}
ans = BiSearch();
printf("-1\n%d", ans);
return 0;
}
为啥一直没输出?