Cod sursa(job #878903)

Utilizator TibixbAndrei Tiberiu Tibixb Data 14 februarie 2013 20:27:13
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include<fstream>
using namespace std;
int n, i, x, v[400002], s[400002], maxim, pmaxim, lmaxim, p, l;
int main(){
    ifstream f("buline.in");
    ofstream g("buline.out");
    f>>n;
    for(i=1; i<=n; i++){
        f>>v[i]>>x;
        if(x==0)
            v[i]=0-v[i];
        v[n+i]=v[i];
    }
    s[i]=v[1];
    maxim=v[1];
    pmaxim=1;
    lmaxim=1;
    for(i=2; i<=2*n-1; i++){
        if(v[i]>v[i]+s[i-1]){
            s[i]=v[i];
            p=i;
            l=1;
        }
        else{
            s[i]=v[i]+s[i-1];
            l++;
            if(l>n){
                l=1;
                s[i]=v[i];
                p=i;
            }
        }
        if(s[i]>maxim){
            maxim=s[i];
            pmaxim=p;
            lmaxim=l;
        }
        else{
            if(s[i]==maxim){
                if(p<pmaxim){
                    pmaxim=p;
                    lmaxim=l;
                }
                if(p==pmaxim){
                    if(l<lmaxim)
                        lmaxim=l;
                }
            }
        }
    }
    g<<maxim<<" "<<pmaxim<<" "<<lmaxim;
    return 0;
}