Cod sursa(job #571476)

Utilizator bogfodorBogdan Fodor bogfodor Data 4 aprilie 2011 15:00:35
Problema Buline Scor 20
Compilator cpp Status done
Runda brasov_11_jr Marime 0.98 kb
#include <cstdio>
#define Nmax 200000

using namespace std;

FILE *fin=freopen("buline.in","r",stdin);
FILE *fout=freopen("buline.out","w",stdout);

int a[2*Nmax+2],s,n,p1,l1,l2,p2,s2;

void citire()
{
    int t=0;
    scanf("%d",&n);
    for(int i=0;i<n;++i)
    {
        scanf("%d %d",&a[i],&t);
        if(t==0)
            a[i]=(-(a[i]));
    }
    for(int i=0;i<n;++i)
        a[i+n]=a[i];
}

void suma()
{
    int m=2*n;
    s=a[0];
    p1=0;
    l1=1;
    for(int i=1;i<m;++i)
    {
        if(s+a[i]>a[i])
        {
            s+=a[i];
            l1++;
        }
        else
        {

            l1=1;
            p1=i;
            s=a[i];
        }
       if(s>s2)
            {
                if(l1>n)
                    break;
                p2=p1;
                l2=l1;
                s2=s;
            }
    }
    printf("%d %d %d\n",s2,p2+1,l2);
}

int main()
{
        citire();
        suma();
        return 0;
}