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