Cod sursa(job #879424)

Utilizator TibixbAndrei Tiberiu Tibixb Data 15 februarie 2013 13:34:02
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.48 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];
    }
    s[1]=v[1];
    maxim=v[1];
    pmaxim=1;
    lmaxim=1;
    for(i=2; i<=n+n; i++){
        if(s[i-1]<=0){
            s[i]=v[i];
            p=i;
            l=1;
        }
        else{
            //if(v[i]+s[i-1]<=0){}
            //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;
}