Cod sursa(job #1642426)

Utilizator RaduToporanRadu Toporan RaduToporan Data 9 martie 2016 14:04:39
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>

int n,i,a[200005],cul,sn,s,st,dr,smin,stmin,drmin;

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[i],&cul);
        if (cul==0) a[i]=(-1)*a[i];
        sn=sn+a[i];
    }
    s=a[1];
    st=1;
    dr=1;
    smin=a[1];
    stmin=1;
    drmin=1;
    for (i=2; i<=n; i++)
    {
        if (a[i]+s<=a[i]) s=s+a[i];
            else s=a[i],st=i;
        if (s<smin or (s==smin && (i-st+1>drmin-stmin+1)))
        {
            smin=s;
            stmin=st;
            drmin=i;
        }
    }
    if (smin==sn) printf("%d %d %d\n",smin,1,n);
        else printf("%d %d %d\n",sn-smin,drmin+1,n-drmin+stmin-1);
    return 0;
}