Cod sursa(job #1624861)

Utilizator miki4Dragomir Mihai miki4 Data 2 martie 2016 14:12:31
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int x, l, i, j, n, v[400005], pmax, umax, p;
long long maxim, s;
int main()
{
    fin>>n;
    for(i=1;i<=n;i++){
        fin>>x>>p;
        if(p==1)
            v[i]=x;
        else
            v[i]=-x;
        v[n+i]=v[i];
    }

    s=v[1];maxim=s;pmax=1;umax=1;p=1;l=1;
    for(i=2;i<=2*n;i++){
        if(v[i]+s>=v[i]){
            if(l+1<=n)
                {s+=v[i];l++;}
            else{
                i++;
                l=1;
                s=v[i];
            }
        }
        else{
          s=v[i];
          p=i;
          l=1;
        }
        if(s>maxim){
            maxim=s;
            umax=i;
            pmax=p;
        }
    }
    fout<<maxim<< " "<<pmax<< " "<<umax-pmax+1;

    return 0;
}