Cod sursa(job #1518379)

Utilizator razvandraghiciDraghici Razvan razvandraghici Data 5 noiembrie 2015 21:09:55
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.4 kb
#include <fstream>

using namespace std;
int sumainitiala, minim, maxim, n, x, y, s1, s2, nr, nr1, nrmax, nr1max, p, p1, pmax, p1max, i;
int main()
{
    ifstream fin("buline.in");
    ofstream fout("buline.out");
    fin>>n;
    p=1;
    p1=1;
    maxim=-2000000000;
    minim=2000000000;
    for(i=1;i<=n;i++){
        fin>>x>>y;
        if(y==0)
            x=0-x;
        sumainitiala+=x;
        if(s1+x>=s1){
            s1+=x;
            nr++;
            }
        else{
            s1=x;
            p=i;
            nr=1;
        }
        if(s1>maxim){
            maxim=s1;
            pmax=p;
            nrmax=nr;
        }
         if(s2+x<=s1){
            s2+=x;
            nr1++;
            p1++;
         }
        else{
            s2=x;
            p1=i;
            nr1=1;
        }
        if(s2<minim){
            minim=s2;
            p1max=p1+1;
            if(p1max+1>n)
                p1max=1;
            nr1max=n-nr1;
        }
    }
    if(pmax==p1max){
            if(maxim==sumainitiala-minim){
       if(nrmax<=nr1max)
        fout<<maxim<<" "<<pmax<<" "<<nrmax;
       else
        fout<<sumainitiala-minim<<" "<<p1max<<" "<<nr1max;
            }
    }
    else{
    if(maxim>=sumainitiala-minim)
        fout<<maxim<<" "<<pmax<<" "<<nrmax;
    else
        fout<<sumainitiala-minim<<" "<<p1max<<" "<<nr1max;
    }
    return 0;
}