比赛 20231007练习 评测结果 TTTWTTTTTT
题目名称 数列操作 最终得分 0
用户昵称 小金 运行时间 10.000 s
代码语言 C++ 内存使用 7.26 MiB
提交时间 2023-10-07 21:50:36
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
long long a[100010],b[100010];
int n,m;
int main()
{
    freopen("hihocoderD.in","r",stdin);
    freopen("hihocoderD.out","w",stdout);
    memset(b,0,sizeof(b));
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    }
    for(int i=1;i<=m;i++)
    {
        int p,l,r;
        long long x;
        cin>>p;
        if(p==1){
            cin>>l>>r>>x;
            for(int j=l;j<=r;j++)
            {
                if(a[j]<x)
                {
                    a[j]=x;
                    b[j]++;
                }
            }
        }else if(p==2){
            cin>>l>>r>>x;
            for(int j=l;j<=r;j++)
            {
                if(a[j]>x)
                {
                    a[j]=x;
                    b[j]++;
                }
            }
        }else if(p==3){
            cin>>l>>r>>x;
            for(int j=l;j<=r;j++)
            {
                a[j]+=x;
                b[j]++;
            }
        }else{
            cin>>l>>r;
            long long ans=0;
            for(int j=l;j<=r;j++)
            {
                ans+=b[j];
            }
            cout<<ans<<endl;
        }
    }
    return 0;
}