Cod sursa(job #3165512)

Utilizator Theo20067Cismaru Theodor-Alexe Theo20067 Data 6 noiembrie 2023 13:01:42
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.22 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout("buline.out");
long long n,i,V[200002],maxim,s,stmax,drmax,stmin,drmin,S,x,suma,minim;
int main ()
{
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>V[i]>>s;
        if(s==0)
            V[i]=-V[i];
        suma=suma+V[i];
    }
    s=1;
    stmax=1;
    drmax=1;
    S=V[1];
    maxim=S;
    for(i=2;i<=n;i++)
    {
        //fout<<V[i]<<" ";
        if(S+V[i]>=V[i])
            S+=V[i];
        else
        {
            S=V[i];
            s=i;
        }
        if(S>maxim)
        {
            maxim=S;
            drmax=i;
            stmax=s;
        }
    }
    s=1;
    stmin=1;
    drmin=1;
    S=V[1];
    minim=S;
    for(i=2;i<=n;i++)
    {
        //fout<<V[i]<<" ";
        if(S+V[i]<=V[i])
            S+=V[i];
        else
        {
            S=V[i];
            s=i;
        }
        if(S<minim)
        {
            minim=S;
            drmin=i;
            stmin=s;
        }
    }
    if(maxim>suma-minim)
        fout<<maxim<<" "<<stmax<<" "<<drmax-stmax+1;
    else
        fout<<suma-minim<<" "<<drmin+1<<" "<<n-(drmin-stmin+1);
    return 0;
}