Cod sursa(job #1259024)

Utilizator robx12lnLinca Robert robx12ln Data 9 noiembrie 2014 17:21:43
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.12 kb
#include<fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int v[200010],n,i,j,p,u,minim,sum,s,i1,x,y,st,pt,l,maxim,mp,mu;
int main(){
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>x>>y;
        if(y==0){
            v[i]=0-x;
        }
        if(y==1){
            v[i]=x;
        }
        st+=v[i];
    }
    s=v[1];
    minim=s;
    p=1;
    u=1;
    i1=1;
    for(i=2;i<=n;i++){
        if(s+v[i]<v[i]){
            s+=v[i];
        }else{
            s=v[i];
            i1=i;
        }
        if(s<minim){
            minim=s;
            p=i1;
            u=i;
        }
    }
    maxim=v[1];
    s=v[1];
    mp=1;
    mu=1;
    i1=1;
    for(i=1;i<n;i++){
        if(s+v[i]>v[i]){
            s+=v[i];
        }else{
            s=v[i];
            i1=i;
        }
        if(maxim<s){
            maxim=s;
            mp=i1;
            mu=i;
        }
    }
    st-=minim;
    pt=u+1;
    l=p-1+n-p;
    if(st<maxim){
        fout<<maxim<<" "<<mp<<" "<<mu-mp+1;
    }else{
        fout<<st<<" "<<pt<<" "<<l;
    }
    return 0;
}