Cod sursa(job #2138278)

Utilizator AlmaChan13Petria Mitran Alma Elena AlmaChan13 Data 21 februarie 2018 15:20:04
Problema Buline Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include <fstream>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int n,i,j,k,maxim,minim,r1,r2,r1m,r2m,pm,um,u,p,sum,summ,sumt,v[200200];
int main () {
    fin>>n;
    for (i=1;i<=n;i++) {
        fin>>v[i]>>p;
        sumt=sumt+v[i];
        if (p==0)
            v[i]=-v[i];

    }
    sum=v[1];
    summ=v[1];
    p=1;
    pm=1;
    um=1;
    u=1;
    for (i=1;i<=n;i++) {
        if (sum+v[i]<v[i]) {
            sum=v[i];
            p=i;
            u=i;
        }
        else {
            sum=sum+v[i];
            u++;
        }
        if (sum>maxim) {
            maxim=sum;
            r1=p;
            r2=u-p+1;
        }
        if (summ+v[i]>v[i]) {
            summ=v[i];
            pm=i;
            um=i;
        }
        else {
            summ=summ+v[i];
            um++;
        }
        if (summ>minim) {
            minim=summ;
            r1m=pm;
            r2m=um-pm+1;
        }
    }
    k=sumt-minim;
    if (k>maxim) {
        fout<<k<<" "<<r1m<<" "<<r2m-r1m+1;
        return 0;
    }
    else {
        fout<<maxim<<" "<<r1<<" "<<r2-r1+1;
        return 0;
    }

}