Cod sursa(job #254472)

Utilizator crisy_girlpop cristina crisy_girl Data 7 februarie 2009 12:20:19
Problema Cuburi2 Scor 0
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 0.65 kb
#include<stdio.h>
int N,M,A[250001],L,R;
long long M1,M2,S1,S2;
int main()
{
    freopen("cuburi2.in","r",stdin);
    freopen("cuburi2.out","w",stdout);
    scanf("%d%d",&N,&M);
    for (int i=1;i<=N;++i)
        scanf("%d",&A[i]);
    for (int i=1;i<=M;++i)
    {
        scanf("%d%d",&L,&R);
        M1=0;M2=0;S1=A[L];S2=A[R];
        while(L<R)
        {
        if ((M1+S1)==(M2+S2)) {++L;--R;M1+=S1;M2+=S2;S1+=A[L];S2+=A[R];}
        else if ((M1+S1)<(M2+S2)) {++L;M1+=S1;S1+=A[L];}
        else {--R;M2+=S2;S2+=A[R];}
        }
        if (M1==M2) printf("%d %lld\n",L,M1);
        else printf("%d %lld\n",L,M1+M2);
    }
    return 0;
}