比赛 |
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;
}