Cod sursa(job #572539)

Utilizator Sm3USmeu Rares Sm3U Data 5 aprilie 2011 13:31:03
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <stdio.h>

using namespace std;

int a[400100];
int b;
int max=-12000;
int lungime;
int start;
int startfinal;
int n;

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

void rez()
{
    int m=n;
    n=n<<1;
    for(int i=0;i<n;++i)
    {
        if(b+a[i]>=a[i])
            b+=a[i];
        else
        {
            b=a[i];
            start=i;
        }
        if(max<b)
        {
            if(i-start>=m)
                break;
            max=b;
            lungime=i-start+1;
            startfinal=start;

        }
    }
    printf("%d %d %d",max,startfinal+1,lungime);
}

int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    citire();
    rez();
    return 0;
}