卡在90分,求指正
查看原帖
卡在90分,求指正
1119860
elkcup楼主2024/7/25 11:43

想只使用一个数组进行处理,但最终只能得到90,无法通过最后一组第一个测试点,求指正

代码如下:

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
long long diff[N],total[N];

int main()
{
    int n,m;cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
        long long l,r,op;cin>>l>>r>>op;
        switch(op)
        {
            case 1:
                diff[l]+=1;
                diff[r+1]-=1;
                break;
            case 2:
                diff[l]+=N;
                diff[r+1]-=N;
                break;
            case 3:
                diff[l]-=1e13;
                diff[r+1]+=1e13;
                break;
        }
    
    }

    int cous=0;
    for(int i=1;i<=n;i++)
    {
        total[i]=total[i-1]+diff[i];
        if(total[i]>N && total[i]%N!=0) cous++;
    }
    cout<<cous<<endl;

    return 0;
}
2024/7/25 11:43
加载中...