Cod sursa(job #1412097)

Utilizator AndreosAndrei Otetea Andreos Data 1 aprilie 2015 09:29:04
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 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];
    }
    n=n<<1;
    sc=smax=v[1];
    stc=stmax=endmax=1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]>v[i] && (i-stc+1)<=(n>>1))
            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;
}