Cod sursa(job #2733274)

Utilizator TeodoraMaria123Serban Teodora Maria TeodoraMaria123 Data 30 martie 2021 10:34:08
Problema Buline Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.13 kb
#include <fstream>

using namespace std;
ifstream in("buline.in");
ofstream out("buline.out");
const int nmax=2e5+5;
int v[2*nmax];
int main()
{
    int n,i,semn,st,drmax,stmax,s,smax,smin,stmin,drmin,st2,stot=0;
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>v[i]>>semn;
        if(!semn)
            v[i]*=-1;
        stot+=v[i];
    }
    s=smax=v[1];
    st=stmax=drmax=1;
    for(i=1; i<=n; i++)
    {
        if(s+v[i]<v[i])
        {
            s=v[i];
            st=i;
        }
        else
            s+=v[i];
        if(s>smax)
        {
            smax=s;
            stmax=st;
            drmax=i;
        }
    }
    s=smin=v[1];
    st2=stmin=drmin=1;
    for(i=1; i<=n; i++)
    {
        if(s+v[i]>=v[i])
        {
            s=v[i];
            st2=i;
        }
        else
            s+=v[i];
        if(s<smin)
        {
            smin=s;
            stmin=st2;
            drmin=i;
        }
    }
    if(stot-smin>smax)
        out<<stot-smin<<" "<<drmin+1<<" "<<n-(drmin-stmin+1);
    else
        out<<smax<<" "<<stmax<<" "<<drmax-stmax+1;
    return 0;
}