| 比赛 | 
    十一中校庆欢乐赛 | 
    评测结果 | 
    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;
}