Cod sursa(job #642613)

Utilizator dutzulBodnariuc Dan Alexandru dutzul Data 1 decembrie 2011 20:04:52
Problema Buline Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <fstream>
using namespace std;
ifstream f("buline.in");
ofstream g("buline.out");
int n,i,j,c,a[400005],s[400005],p,pw,x,poz[400006],pz,ad,d,m,in,el;
int main()
{
    f>>n;
    for(i=1; i<=n; i++)
    {
        f>>x>>c;
        if (c==0)
            a[i]=x*-1;
        else a[i]=x;
    }

    for(i=1; i<=n; i++)
    {
        p+=a[i];
        s[i]=p;
    }

    p=0;

    for(i=n+1; i<=2*n-1; i++)
    {
        p++;
        a[i]=a[p];
    }

    poz[1]=1;


    for(i=2; i<=2*n-1; i++)
    {
        if (i>n) pz=i-n;

        if (poz[i-1]<=pz)
        {
            ad=a[i-1]-s[pz];
            pw=pz+1;
        }
        else
        {
            ad=a[i-1];
            pw=poz[i-1];
        }


        if (ad>=0)
        {
            a[i]=a[i]+ad;
            poz[i]=pw;
        }
        else poz[i]=i;
    }


    for(i=1; i<=2*n-1; i++)
        if (a[i]>m)
        {
            m=a[i];
            in=poz[i];
            el=i-poz[i]+1;
        }
        g<<m<<" "<<in<<" "<<el;
    f.close();
    g.close();
    return 0;
}