Cod sursa(job #844486)

Utilizator mirceadinoMircea Popoveniuc mirceadino Data 29 decembrie 2012 13:24:30
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
using namespace std;
int v[400010],n,i,a,b,s,begin,end,smax,inc;
int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&a,&b);
        if(b==0) b=-1;
        v[i]=a*b;
    }
    s=-1;
    for(i=1;i<=2*n-1;i++)
    {
        if(s<0) s=0,inc=i;
        s+=v[i];
        if(s>smax) {smax=s; begin=inc; end=i;}
    }
    for(i=1;i<inc;i++)
    {
        if(s<0) s=0,inc=n+i;
        s+=v[i];
        if(s>smax) {smax=s; begin=inc; end=n+i;}
    }
    printf("%d %d %d\n",smax,begin,end-begin+1);
    return 0;
}