Cod sursa(job #1650409)

Utilizator andreimdvMoldovan Andrei andreimdv Data 11 martie 2016 18:08:45
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <fstream>
using namespace std;

ifstream fin("buline.in");
ofstream fout("buline.out");


int n, v[400010],i,a,b,smax,currentl,startp,s,lmax;

int main()
{
    fin>>n;
    for(i=1;i<=n;++i)
    {
        fin>>a>>b;
        if(b==0)
            v[i]=-a;
        else
            v[i]=a;
        v[i+n]=v[i];
    }

    smax=-(1<<30);

    for(i=1;i<=2*n;++i)
    {
            if(s+v[i]>v[i]&&currentl<n)
            {
                s=s+v[i];
                currentl++;
                if(s>smax)
                {
                        smax=s;
                        startp=i-currentl+1;
                        lmax=currentl;
                }
            }
            else
            {
                s=v[i];
                currentl=1;
                if(s>smax)
                {
                        smax=s;
                        startp=i-currentl+1;
                        lmax=currentl;
                }
            }
    }
    fout<<smax<<" "<<startp<<" "<<lmax<<'\n';



    return 0;
}