Cod sursa(job #2119170)

Utilizator MihneaGhiraMihnea MihneaGhira Data 31 ianuarie 2018 19:03:15
Problema Buline Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.01 kb
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int n,i,x,S,s,p,pmax,pmin,lmax,lmin,maxim,minim;
int v[200005];
int main(){
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>v[i]>>x;
        if(x==0){
            v[i]*=-1;
        }
        S+=v[i];
    }
    for(int i=1;i<=n;i++){
        if(s+v[i]>=v[i]){
            s+=v[i];
        }
        else{
            s=v[i];
            p=i;
        }
        if(maxim<s){
            maxim=s;
            pmax=i;
            lmax=p;
        }
    }
    s=0;
    p=0;
    for(int i=1;i<=n;i++){
        if(s+v[i]<=v[i]){
            s+=v[i];
        }
        else{
            s=v[i];
            p=i;
        }
        if(minim>s){
            minim=s;
            pmin=i;
            lmin=p;
        }
    }
    if(maxim<S-minim){
        fout<<S-minim<<" "<<pmin+1<<" "<<n-pmin+lmin-1;
    }
    else{
        fout<<maxim<<" "<<lmax<<" "<<pmax-lmax+1;
    }
    return 0;
}