Cod sursa(job #2734266)

Utilizator uncle_sam_007ioan bulik uncle_sam_007 Data 31 martie 2021 16:52:26
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>

using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
const int NMAX=2e5+5;
int v[NMAX*2];
int n,i,ok,st,drmax,stmax,sc,scmax,scmin,stmin,drmin,st2,stot=0,smax;
int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
    {
        fin>>v[i]>>ok;
        if(ok==0)
            v[i]=v[i]*-1;
        stot+=v[i];
    }
    sc=scmax=v[1];
    st=stmax=drmax=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;
        }
    }
    sc=scmin=v[1];
    st2=stmin=drmin=1;
    for(i=2; i<=n; i++)
    {
        if(sc+v[i]>=v[i])
        {
            sc=v[i];
            st2=i;
        }
        else
            sc=sc+v[i];
        if(sc<scmin)
        {
            scmin=sc;
            stmin=st2;
            drmin=i;
        }
    }
    smax=max(scmax,stot-scmin);
    fout<<smax<<" ";
    if(stot-scmin>scmax)
        fout<<drmin+1<<" "<<n-(drmin-stmin+1);
    else
        fout<<stmax<<" "<<drmax-stmax+1;
    return 0;
}