记录编号 238480 评测结果 AAAAAAAAAA
题目名称 [IOI 2001] 移动电话 最终得分 100
用户昵称 Gravatar安呐一条小咸鱼。 是否通过 通过
代码语言 C++ 运行时间 0.066 s
提交时间 2016-03-19 09:42:09 内存使用 2.62 MiB
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<string>
namespace bbb
{
	int n,a[1030][1030]={0};
	int pan;
	int chu;
	int QuickRead() {
		int zf = 1, ret = 0;
		char ch = getchar();
		while ((ch < '0' || ch > '9') && ch != '-') ch = getchar();
		if (ch == '-') zf = -1;
		else ret = ch - '0';
		ch = getchar();
		while (ch >= '0' && ch <= '9') {
			ret = ret * 10 + ch - '0';
			ch = getchar();
		}
		return ret*zf;
	}
	int Lowbit(int x)
	{
		return x&(-x);
	}
	void Add(int s,int t,int w)
	{
		for(int i=s;i<=n;i+=Lowbit(i))
		{
			for(int j=t;j<=n;j+=Lowbit(j))
			{
				a[i][j]+=w;
			}
		}
	}
	int Get_sum(int x,int y)
	{
		int sum=0;
		for(int i=x;i>0;i-=Lowbit(i))
		{
			for(int j=y;j>0;j-=Lowbit(j))
			{
				sum+=a[i][j];
			}
		}
		return sum;
	}
	int Total(int s,int t,int x,int y)
	{
		return Get_sum(x,y)-Get_sum(s-1,y)-Get_sum(x,t-1)+Get_sum(s-1,t-1);
	}
	void work1()
	{
		int X,Y,A;
		X=QuickRead();
		Y=QuickRead();
		A=QuickRead();
		Add(X+1,Y+1,A);
	}
	void work2()
	{
		int L,B,R,T;
		L=QuickRead();
		B=QuickRead();
		R=QuickRead();
		T=QuickRead();
		int k=Total(L+1,B+1,R+1,T+1);
		printf("%d\n",k);
	}
	int work()
	{
		chu=QuickRead();
		n=QuickRead();
		while(1)
		{
			pan=QuickRead();
			if(pan==1)work1();
			if(pan==2)work2();
			if(pan==3)break;
		}
		return 0;
	}
}
void *_=freopen("mobilephones.in","r",stdin);
void *__=freopen("mobilephones.out","w",stdout);
int jboe=bbb::work();
int main(){;}