Cod sursa(job #1466807)

Utilizator vladcainamisirVlad Cainamisir vladcainamisir Data 30 iulie 2015 16:28:49
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
int x[200005];
int main(){
    int n,a,b,st=0,i,sc,smax,ic,im,sfm,sfmin,smin,smax2,imin;
    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=b-1;
    x[i]=a*b;
    st=st+x[i];
    }
    sc=smax=x[1];
    ic=im=sfm=1;
    for(i=2;i<=n;i++)
    {
        if(sc+x[i]<x[i]){
        sc=x[i];
        ic=i;
    }
    else
        sc=sc+x[i];
    if(sc>smax){
        smax=sc;
        im=ic;
        sfm=i;
    }
    }
    sc=smin=x[1];
    ic=imin=sfmin=1;
    for(i=2;i<=n;i++)
    {
        if(sc+x[i]>=x[i]){
        sc=x[i];
        ic=i;
    }
     else
        sc=sc+x[i];
    if(sc<smin){
        smin=sc;
        imin=ic;
        sfmin=i;
    }
    }
     smax2=st-smin;
    if(smax>=smax2)
        printf("%d %d %d",smax,im,sfm-im+1);
    else
        printf("%d %d %d",smax2,(sfmin+1)%n,n-(sfmin-imin+1));
    return 0;
}