Cod sursa(job #1461844)

Utilizator PruteanuTheoPruteanu Theodor PruteanuTheo Data 16 iulie 2015 15:41:18
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.35 kb
#include <cstdio>

using namespace std;

int v[20001];

int main()
{
    freopen("buline.in","r",stdin);
    //freopen("buline.out","w",stdout);
    int n,i,stot=0,semn,sc,smax,ic,sfm,im,smax2,smin,sfm2,im2;
    scanf("%d",&n);
    for(i=1;i<=n;++i)
    {
        scanf("%d%d",&v[i],&semn);
        if(semn==0)
            {
            stot=stot-v[i];
            v[i]=v[i]*-1;
            }
        else
            stot=stot+v[i];
    }
    sc=v[1]; smax=v[1]; ic=sfm=im=1;
    for(i=2;i<=n;++i)
    {
        if(sc+v[i]>v[i])
            {
                sc=sc+v[i];
            }
        else
            {
                sc=v[i];
                ic=i;
            }
    if(sc>smax)
        {
            smax=sc;
            im=ic;
            sfm=i;
        }
    }
    sc=v[1]; smin=v[1]; ic=sfm2=im2=1;
    for(i=2;i<=n;++i)
    {
        if(sc+v[i]<v[i])
            {
                sc=sc+v[i];
            }
        else
            {
                sc=v[i];
                ic=i;
            }
    if(sc<smin)
        {
            smin=sc;
            im2=ic;
            sfm2=i;
        }
    }
    smax2=stot-smin;
    if(smax>=smax2)
    {
        printf("%d %d %d\n",smax,im,sfm-im+1);
    }
    else
    {
        printf("%d %d %d\n",smax2,(sfm2+1)%n,n-(sfm2-im2+1));
    }
    return 0;
}