比赛 十一中校庆欢乐赛 评测结果 WWWWWWWWWW
题目名称 求和问题 最终得分 0
用户昵称 岳帛翰 运行时间 3.689 s
代码语言 C++ 内存使用 0.35 MiB
提交时间 2014-10-23 19:43:48
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>

using namespace std;

int arr[10010];
long long ll[205],sum;

int main()
{
	freopen("sum.in","r",stdin);
	freopen("sum.out","w",stdout);
	int n,m;
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		
		cin>>arr[i];
		sum+=arr[i];
		if(!i%50)
		{
			arr[i/50-1]=sum;
			sum=0;
		}
	}
	
	cin>>m;
	for(int i=1,a,b;i<=m;i++)
	{
		sum=0;
		cin>>a>>b;
		if(b>500&&(b-a)>300)
		{
			short x=a/50+1,y=b/50-1;
			if(!a%50)	x--;
			if(!b%50)	y++;
			for(short j=x;j<=y;j++)//room++
			{
				sum+=ll[j];
			}
		
			for(x*=50;a<=x;a++)
			{
				sum+=arr[a];
			}
			for(y=y*50+51;y<=b;y++)
			{
				sum+=arr[y];
			}
		}
		else
		{
			for(;a<=b;a++)
			{
				sum+=arr[a];
			}
		}
		cout<<sum<<endl;
	}
	
	
	
	
	return 0;
}