Cod sursa(job #2331142)

Utilizator Laza_AndreiLazarescu Andrei Vlad Laza_Andrei Data 29 ianuarie 2019 11:03:41
Problema Buline Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.91 kb
#include <cstdio>

using namespace std;

int x[200005];

int main(){
    freopen("buline.in","r",stdin);
    freopen("buline.out","w",stdout);
    int n,p,smin,sc,ic,st,dr,col,i;
    long stot=0,smax;
    scanf("%d",&n);
    for(i=1;i<=n;++i){
        scanf("%d%d",&x[i],&col);
        if(col==0){
            x[i]=-x[i];
        }
        stot+=x[i];
    }
    smax=sc=x[1];
    for(i=2;i<=n;++i){
        if(sc+x[i]<x[i]){
            sc=x[i];
        }else{
            sc=sc+x[i];
        }
        if(smax<sc){
            smax=sc;
        }
    }
    sc=smin=x[1];
    st=dr=ic=1;
    for(i=2;i<=n;++i){
        if(sc+x[i]>x[i]){
            sc=x[i];
            ic=i;
        }else{
            sc=sc+x[i];
        }
        if(smin>sc){
            smin=sc;
            st=ic;
            dr=i;
        }
    }
    printf("%d %d %d",stot-smin,dr+1,n-(dr-st+1));
    return 0;
}