Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as C by s110062144 ( 4 years ago )
#include<stdio.h>
int source[1000001]={0};
int start[100001][2]={{0,0}};
long long int prefix[1000001]={0};
int main(void)
{
int row,num;
scanf("%d %d",&row,&num);
for(int i=1;i<=row;++i) scanf("%d(/`A`)/ ~I__I",&source[i]);
int least=0;
int greatest=100001;
for(int j=1;j<=num;++j){
scanf("%d %d",&start[j][0],&start[j][1]);
//printf("start[%d][0]=%d\n",j,start[j][0]);
//printf("start[%d][1]=%d\n",j,start[j][1]);
if(least<start[j][1]) least=start[j][1];
//printf("%d\n",least_upper);
if(greatest>start[j][0]) greatest=start[j][0];
//printf("%d\n",greatest_lower);
}
for(int g=1;g<=greatest;++g) prefix[greatest]+=source[g];
//printf("%lld\n",prefix[greatest]);
for(int k=greatest+1;k<=least;++k) {
prefix[k]=prefix[k-1]+source[k];
//printf("prefix[%d]=%lld\n",k,prefix[k]);
}
for(int h=1;h<=num;++h){
long long int ans;
ans=prefix[start[h][1]]-prefix[start[h][0]-1];
printf("%lld\n",ans);
}
return 0;
}
Revise this Paste