Cod sursa(job #879345)

Utilizator TibixbAndrei Tiberiu Tibixb Data 15 februarie 2013 11:58:59
Problema Buline Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.18 kb
#include<fstream>
using namespace std;
int n, i, x, v[400002], s[400002], maxim, pmaxim, lmaxim, p, l, q;
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];
    }
    for(q=1; q<=n; q++){
    s[q]=v[q];
    //maxim=v[q];
    //pmaxim=q;
    //lmaxim=1;
    for(i=q+1; 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;
}