Cod sursa(job #3265490)

Utilizator dgrigaGriga Darius dgriga Data 30 decembrie 2024 14:36:08
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <fstream>

using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int n, v[400001], b[400001];
int main()
{
    f >> n;
    for(int i=1; i<=n; i++)
       f >> v[i] >> b[i];
    for(int i=n+1; i<=n*2; i++)
        v[i]=v[i-n], b[i]=b[i-n];
    int l, lmin=0, p, pmin, sc=0, smax=0;
    for(int i=1; i<=n*2; i++)
    {
        if(b[i]==1)
            sc+=v[i];
        else
            sc-=v[i];
        if(sc<=-1)
            sc=0, l=0, p=i+1;
        else
        {
            l++;
            if(l>n)
                sc=v[i], l=1, p=i;
            if(sc<=-1)
                sc=0, l=0, p=i+1;
            if(sc>smax)
                smax=sc, pmin=p, lmin=l;
            else if(sc==smax)
            {
                if(p<pmin)
                    pmin=p, lmin=l;
                else if(p==pmin)
                    if(l<lmin)
                        lmin=l;
            }
        }
    }
    if(pmin>n)
        pmin-=n;
    g << smax << " " << pmin << " " << lmin;
    return 0;
}