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