比赛 |
2025.5.5 |
评测结果 |
AATTTTAAAA |
题目名称 |
愈加善良的希望 |
最终得分 |
60 |
用户昵称 |
123 |
运行时间 |
11.668 s |
代码语言 |
C++ |
内存使用 |
4.19 MiB |
提交时间 |
2025-05-05 11:06:27 |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,q,x,op,l,r;
long long b[N],a[N],ret,cnt,k;
int main() {
freopen("hod.in","r",stdin);
freopen("hod.out","w",stdout);
cin>>n;
for (int i=1;i<=n;i++)
{
scanf("%lld",&a[i]);
}
for (int i=1;i<=n;i++)
{
b[i]=a[i]-a[i-1];
}
cin>>q;
while (q--)
{
scanf("%d%d%d",&op,&l,&r);
if (op==0)
{
scanf("%lld",&k);
b[l]+=k,b[r+1]-=k;
}
else
{
ret=-1e18,cnt=0;
for (int i=1;i<l;i++)
{
a[i]=a[i-1]+b[i];
cnt+=a[i];
}
for (int i=l;i<=r;i++)
{
a[i]=a[i-1]+b[i];
cnt+=a[i];
ret=max(ret,cnt);
}
printf("%lld\n",ret);
}
}
}