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