Cod sursa(job #2930533)

Utilizator KitsuRaineFurtuna-Cola Andrei Alexandru KitsuRaine Data 28 octombrie 2022 17:04:16
Problema Buline Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std;

ifstream f("buline.in");
ofstream g("buline.out");

int main()
{
    int st, dr, Smax = -2000000000, S = -1, start, n, semn, A[200001];

    f >> n;
    for(int i = 1 ; i <= n ; ++ i)
    {
        f >> A[i] >> semn;
        if(!semn)
            A[i]=(A[i]*-1);
        if(S < 0)
        {
            S = 0;
            start = i;
        }
        S += A[i];
        if(S > Smax)
        {
            Smax = S;
            st = start;
            dr = i;
        }
        //g<<i<<" "<<A[i]<<" "<<S<<" "<<Smax<<'\n';
    }
    for(int i = 1; i < st; ++ i)
    {
        if(S < 0)
            S = 0, start = i;
        S += A[i];
        if(S > Smax)
            Smax = S, st = start, dr = i;
        //g<<i<<" "<<A[i]<<" "<<S<<" "<<Smax<<'\n';
    }
    g << Smax << " ";
    if(dr<st)
        g << st << " " << (n-st+1)+dr;
    else
        g << st << " " << dr-st+1;
    return 0;
}