Cod sursa(job #3275864)

Utilizator mihail_11Ionescu Mihail mihail_11 Data 11 februarie 2025 20:37:23
Problema Buline Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");
int t[6000005];
int main()
{
    long long int n,S=-2e9,i,j=1,contor=0,Smax=-2e9,Smin=2e9,finish,start,finish1,start1,val,semn;
    fin>>n;
    for(i=1;i<=n;++i)
    {
        fin>>val>>semn;
        if(semn==0)
            val*=-1;
        t[i]=t[i+n+1]=val;
    }
    S=-2e14;
    for(i=1;i<=n;i++)
    {
        if(S<0)
        {
            S=t[i];
            j=i;
        }
        else
        {
            S=S+t[i];
        }
        if(S>Smax)
        {
            Smax=S;
            finish=i;
            start=j;
        }
    }
    S=2e14;
    for(i=1;i<=n;i++)
    {
        if(S>0)
        {
            S=t[i];
            j=i;
        }
        else
        {
            S=S+t[i];
        }
        if(S<Smin)
        {
            Smin=S;
            finish1=i;
            start1=j;
        }
        //cout<<S;
    }
    S=0;
    for(i=1;i<=n;++i)
        S+=t[i];
    if(Smax>=S-Smin)
    {
        fout<<Smax<<' '<<start<<' '<<finish;
    }
    else
        fout<<S-Smin<<' '<<finish1+1<<' '<<n-(finish1-start1+1);

}