Cod sursa(job #2733266)

Utilizator CristeaCristianCristea Cristian CristeaCristian Data 30 martie 2021 10:28:04
Problema Buline Scor 30
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");
const int NMAX=400005;
int v[NMAX];
int main()
{
    int n,st,drmax,stmax,semn,i,drmin,stmin;
    long long maxim,sum,minim,suma;
    fin>>n;
    fin>>v[1]>>semn;
    if(semn==0)
        v[1]*=-1;
    maxim=sum=v[1];
    st=stmax=drmax=1;
    suma=v[1];
    for(i=2;i<=n;i++)
    {
        fin>>v[i]>>semn;
        if(semn==0)
            v[i]*=-1;
        suma+=v[i];
    }
    for(i=2;i<=n;i++)
    {
        sum+=v[i];
        if(sum<v[i])
        {
            sum=v[i];
            st=i;
        }
        if(maxim<sum)
        {
            maxim=sum;
            drmax=i;
            stmax=st;
        }
    }
    st=stmin=drmin=1;
    minim=sum=v[1];
    for(i=2;i<=n;i++)
    {
        sum+=i;
        if(sum>v[i])
        {
            sum=v[i];
            st=i;
        }
        if(minim>sum)
        {
            minim=sum;
            stmin=st;
            drmin=i;
        }
    }
    if(maxim>(suma-minim))
        fout<<maxim<<' '<<stmax<<' '<<drmax-stmax+1;
    else
        fout<<(suma-minim)<<' '<<drmin+1<<' '<<n-(drmin-stmin+1);
    return 0;
}