Cod sursa(job #2734264)

Utilizator Ioana_BododeaBododea Ioana Ioana_Bododea Data 31 martie 2021 16:48:39
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.2 kb
#include <fstream>

using namespace std;

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

int v[200005];

int main()
{
    int n,i,scmax,sc,st,stmax,drmax,scmax2,scmin,stmin,drmin,x,y,sct,p,l;
    sct=0;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x>>y;
        if(y==0)
            v[i]=-1*x;
        else
            v[i]=x;
        sct=sct+v[i];
    }
    sc=scmax=scmin=v[1];
    st=stmax=drmax=stmin=drmin=1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]<v[i])
        {
            sc=v[i];
            st=i;
        }
        else
            sc=sc+v[i];
        if(sc>scmax)
        {
            scmax=sc;
            stmax=st;
            drmax=i;
        }
    }
    p=stmax;
    l=drmax-stmax+1;
    for(i=2;i<=n;i++)
    {
        if(sc+v[i]>v[i])
        {
            sc=v[i];
            st=i;
        }
        else
            sc=sc+v[i];
        if(sc<scmin)
        {
            scmin=sc;
            stmin=st;
            drmin=i;
        }
    }
    scmax2=sct-scmin;
    if(scmax2>scmax)
    {
        scmax=scmax2;
        p=drmin+1;
        l=n-(drmin-stmin+1);
    }
    fout<<scmax<<" "<<p<<" "<<l;
    return 0;
}