萌新全WA求助
查看原帖
萌新全WA求助
61480
爱晚亭哦楼主2020/8/8 20:38

数据1输出全部一样,萌新谔谔

#include<cstdio>
#include<iostream>
using namespace std;
int n,m,p,q,maxx;
char c;
int a[200001];
int low(int x)
{
	return x&(-x);
}
void up(int x,int y)
{
	for(;x<=n;x+=low(x))
		a[x]+=y;
}
int sum(int x)
{
	int ans=0;
	for(;x;x-=low(x))
		ans+=a[x];
	return ans;
}
int main()
{
	scanf("%d %d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&p);
		up(i,p);
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%c",&c);
		scanf("%c %d %d",&c,&p,&q);
		if(c=='Q')
		{
			maxx=0;
			for(int i=p;i<=q;i++)
				maxx=max(maxx,sum(i)-sum(i-1));
			printf("%d\n",maxx);
		}
		else
		{
			if((sum(p)-sum(p-1))<q)
			{
				int t=q-sum(p)+sum(p-1);
				up(p,t);
			}
		}
	}
}
2020/8/8 20:38
加载中...