Cod sursa(job #1412115)

Utilizator AndreosAndrei Otetea Andreos Data 1 aprilie 2015 09:37:27
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdio>

using namespace std;
int v[400005];
int main()
{
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    int n,i,c,s,p,l,sc,stc,stmax,endmax,smax;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d%d",&v[i],&c);
        if(c==0)
            v[i]=v[i]*-1;
        v[n+i]=v[i];
    }
    sc=smax=v[1];
    stc=stmax=endmax=1;
    for(i=2;i<=(n<<1);i++)
    {
        if(sc+v[i]>v[i] && (i-stc+1)<=n)
            sc=sc+v[i];
        else
        {
            sc=v[i];
            stc=i;
        }
        if(sc>smax)
        {
            smax=sc;
            stmax=stc;
            endmax=i;
        }
    }
    printf("%d %d %d\n",smax,stmax,endmax-stmax+1);
    return 0;
}