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