比赛 |
2025.5.5 |
评测结果 |
WWAAWWTTTT |
题目名称 |
愈加善良的希望 |
最终得分 |
20 |
用户昵称 |
郑霁桓 |
运行时间 |
8.156 s |
代码语言 |
C++ |
内存使用 |
5.04 MiB |
提交时间 |
2025-05-05 11:37:34 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
long long n,a[1000005],m,x[1000005],y[1000005],z[1000005],k[1000005],t,lz;
long long b[1000005],s,p1,p2,mx=-1e18;
int main(){
freopen("hod.in","r",stdin);
freopen("hod.out","w",stdout);
ios::sync_with_stdio(false);
cin>>n;
for(long long i=1;i<=n;i++) cin>>a[i];
cin>>m;
for(long long i=1;i<=m;i++){
cin>>x[i]>>y[i]>>z[i];
if(!x[i]) cin>>k[i];
if(y[i]!=1||z[i]!=n) t=1;
}
if(!t){
for(long long i=1;i<=n;i++) a[i]+=a[i-1];
for(long long i=1;i<=n;i++){
if(a[i]>mx) mx=a[i],p1=i,p2=i;
else if(a[i]==mx) p2=i;
}
t=0;
for(long long i=1;i<=m;i++){
if(!x[i]) lz+=k[i];
else if(lz>0) t++,cout<<mx+lz*p2<<"\n";
else t++,cout<<mx+lz*p1<<"\n";
}
}else{
for(long long i=1;i<=n;i++) b[i]=a[i]-a[i-1],a[i-1]=0;
a[n]=0;
for(long long i=1;i<=m;i++){
if(x[i]==0) b[y[i]]+=k[i],b[z[i]+1]-=k[i];
else{
for(long long j=1;j<=n;j++) a[j]=b[j]+a[j-1];
for(long long i=1;i<=n;i++) b[i]=a[i]-a[i-1];
s=0;
for(long long j=1;j<=y[i];j++) s+=a[j];
for(long long j=y[i]+1;j<=z[i];j++){
if(a[j]<0) break;
s+=a[j];
}
cout<<s<<"\n";
}
}
}
return 0;
}