Cod sursa(job #1257199)

Utilizator TibixbAndrei Tiberiu Tibixb Data 7 noiembrie 2014 13:48:51
Problema Buline Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.17 kb
#include<fstream>
using namespace std;
int i, n, s, sec, v[200003], sol, x, ok, nr, poz;
ifstream in("buline.in");
ofstream out("buline.out");
int main(){
    in>>n;
    sol=-99999999;
    for(i=1; i<=n; i++){
        in>>v[i]>>x;;
        if(x==0)
            v[i]=-v[i];
        s+=v[i];
    }
    for(i=1; i<=n; i++){
        if(sec+v[i]>=v[i])
            sec+=v[i];
        else
            sec=v[i];
        if(sec>sol){
            sol=sec;
            poz=i;
            ok=0;
        }
    }
    sec=99999999;
    for(i=1; i<=n; i++){
        if(sec+v[i]<=v[i])
            sec+=v[i];
        else
            sec=v[i];
        if(s-sec>sol){
            sol=s-sec;
            poz=i+1;
            ok=1;
        }
    }
    out<<sol<<" "<<poz<<" ";
    if(ok==0){
        s=0;
        for(i=poz; s!=sol && i<=n; i++){
            s+=v[i];
            nr++;
        }
        out<<nr;
    }
    if(ok==1){
        s=0;
        for(i=poz; s!=sol && i<=n; i++){
            s+=v[i];
            nr++;
        }
        for(i=1; s!=sol && i<=n; i++){
            s+=v[i];
            nr++;
        }
        out<<nr;
    }
return 0;
}