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