Cod sursa(job #1795428)

Utilizator AnduB08Boldisor Andu AnduB08 Data 2 noiembrie 2016 14:00:44
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.14 kb
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
bool a;
int n,i,v[200010],l,p,lmax,pmax,u;
long long s,smax;
int main()
{
    f>>n;
    for(i=1;i<=n;++i)
    {
        f>>v[i]>>a;
        if(a==0)
            v[i]=-v[i];
    }
    for(i=1;i<=n;++i)
    {
        if(s+v[i]>=v[i])
        {
            l++;
            s+=v[i];
        }
        else
        {
            p=i;
            l=1;
            s=v[i];
        }
        if(smax<s)
        {
            smax=s;
            lmax=l;
            pmax=p;
            u=i;
        }
    }
    for(i=1;i<u;++i)
    {
        if(s+v[i]>=v[i])
        {
            l++;
            s+=v[i];
        }
        else
        {
            p=i;
            l=1;
            s=v[i];
        }
        if(smax<s)
        {
            smax=s;
            lmax=l;
            pmax=p;
        }
    }
    l=lmax;
    p=pmax;
    i=pmax;
    smax=0;
    while(lmax)
    {
        if(i>n)
            i=1;
        --lmax;
        smax+=v[i];
        ++i;

    }
    g<<smax<<" "<<p<<" "<<l;
    return 0;
}