比赛 cdcqの省选膜你赛 评测结果 EEEEEEEEEEEEEEEEEEEE
题目名称 新史「新幻想史 -现代史-」 最终得分 0
用户昵称 WA 运行时间 1.563 s
代码语言 C++ 内存使用 6.27 MiB
提交时间 2017-04-11 10:43:48
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<cstdlib>
using namespace std;
int n,m;
struct wtf{
	long long p[600];
	long long w[600];
	int t;
}f[600];
long long doit[60000]={};
bool mycmp(wtf a,wtf b){
	return (a.t<b.t);
}
int main(){
	freopen("cdcq_a.in","r",stdin);
	freopen("cdcq_a.out","w",stdout);
	memset(f,0,sizeof(f));
	scanf("%d%d",&n,&m);
	if(n<=500&&m<=500){
		f[0].t=0;
		for(int i=1;i<=n;++i){
			scanf("%d",&f[0].p[i]);
			f[0].w[i]=f[0].p[i];
			f[0].p[i]+=f[0].p[i-1];
		}
		int tot=0;
		for(int i=1;i<n;i++){
			sort(f,f+tot+1,mycmp);
			getchar();
			char mm;
			mm=getchar();
			if(mm=='Q'){
				int x,y,z;
				scanf("%d%d%d",&x,&y,&z);
				int id=0;
				for(int j=tot;j>=0;j--){
					if(f[j].t<=z){
						id=j;
						break;
					}
				}
				printf("%d\n",f[id].p[y]-f[id].p[x-1]);
			}
			else{
				int x,y,z,l,r,v,t;
				scanf("%d%d%d%d%d%d%d",&x,&y,&z,&l,&r,&v,&t);
				int id=0;
				bool ff=0;
				int id2=1;
				for(int j=tot;j>=0;j--){
					if(f[j].t==t){
						ff=1;
						id2=j;
					}
					if(f[j].t<=t){
						id=j;
						break;
					}
				}
				if(!ff){
					id2=++tot;
				}
				f[id2].t=t;
				for(int j=1;j<=n;j++){
					f[id2].w[j]=f[id].w[j];
				}
				for(int j=x;j<=y;j++){
					f[id2].w[j]-=z;
				}
				for(int j=l;j<=r;j++){
					f[id2].w[j]+=v;
				}
				for(int j=1;j<=n;j++){
					f[id2].p[j]=f[id2].p[j-1]+f[id2].w[j];
				}
			}
		}
	}
	else{
		for(int i=1;i<=n;++i){
			scanf("%d",&doit[i]);
			doit[i]+=doit[i-1];
		}
		for(int i=1;i<n;i++){
			getchar();
			char mm;
			mm=getchar();
			int x,y,z;
			scanf("%d%d%d",&x,&y,&z);
			printf("%d\n",doit[y]-doit[x-1]);
		}
	}
	return 0;
}