比赛 cdcqの省选膜你赛 评测结果 WWWWWWWWWWWWWWWWWWWW
题目名称 新史「新幻想史 -现代史-」 最终得分 0
用户昵称 assassin 运行时间 0.093 s
代码语言 C++ 内存使用 1.69 MiB
提交时间 2017-04-11 09:15:53
显示代码纯文本
#include<iostream>
#include<algorithm>
#include<utility>
#include<string>
#include<iomanip>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<ctime>
#include<cmath>
using namespace std;

int n,m;
int b[50010],sum[50010];
int a[510][510];
char ch;
int x,y,z,l,r,v,t;

inline int read()
{
	char ch=getchar(); int x=0;
	while(!isdigit(ch)) ch=getchar();
	while(isdigit(ch))
	{
		x=x*10+(ch-'0');
		ch=getchar();
	}
	return x;
}

void work1()
{
	memset(a,0,sizeof(a));
	for(int i=1;i<=n;i++)
	{
		a[i][1]=read();
		for(int j=2;j<=m;j++)
			a[i][j]=a[i][j-1];
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%c",&ch);
		if(ch=='Q')
		{
			x=read(); y=read(); t=read()+1;
			int ans=0;
			for(int j=x;j<=y;j++)
			{
				ans+=a[j][t];
			}
			printf("%d\n",ans);
		}
		if(ch=='M')
		{
			x=read(); y=read(); z=read(); l=read(); r=read(); v=read(); t=read()+1;
			for(int j=x;j<=y;j++)
				a[j][t]-=z;
			for(int j=l;j<=r;j++)
				a[j][t]+=v;
		}
	}
}

void work2()
{
	for(int i=1;i<=n;i++)
	{
		b[i]=read();
		sum[i]=sum[i-1]+b[i];
	}
	for(int i=1;i<=m;i++)
	{
		scanf("%c",&ch);
		if(ch=='Q')
		{
			x=read(); y=read(); z=read();
			int ans=sum[y]-sum[x-1];
			printf("%d\n",ans);
		}
		if(ch=='W')
		{
			x=read(); y=read(); z=read(); l=read(); r=read(); v=read(); t=read();
		}
	}
}

int main()
{
	freopen("cdcq_a.in","r",stdin);
	freopen("cdcq_a.out","w",stdout);
	n=read(); m=read();
	if(n<=500 && m<=500) work1();
	else work2();
	fclose(stdin);fclose(stdout);
	return 0;
}