Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: