强烈建议加强数据
查看原帖
强烈建议加强数据
351679
shaun2000楼主2024/8/22 16:00

二分都没用,就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);



}
2024/8/22 16:00
加载中...