Cod sursa(job #3340834)

Utilizator dianatheadiana thea udristoiu dianathea Data 16 februarie 2026 18:32:54
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.32 kb
#include <iostream>
#include <fstream>
#include <climits>
#include <algorithm>
#include <bitset>




using namespace std;
ifstream fin("buline.in");
ofstream fout("buline.out");



int main()
{
    int n;
    fin>>n;
    long long b[n + 1],sum=0;
    for(int i=1; i<=n; i++)
    {
        fin>>b[i];
        int semn;
        fin>>semn;
        if(semn==0)
        {
            b[i]=b[i]*(-1);
        }
        sum=sum+b[i];

    }

    long long smax=b[1],smin=b[1];
    int st1=1,st2=1,dr1=1,dr2=1,minn=smin;
    long long maxx=smax,p1=1,p2=1;
    for(int i=2; i<=n; i++)
    {
        if(smax+b[i]>=b[i])
        {
            smax=smax+b[i];
        }
        else
        {
            smax=b[i];
            st1=i;
        }
        if(smax>maxx)
        {
            maxx=smax;
            p1=st1;
            dr1=i;

        }
        if(smin+b[i]<b[i])
        {
            smin=smin+b[i];
        }
        else
        {
            smin=b[i];
            st2=i;
        }
        if(smin<minn)
        {
            minn=smin;
            p2=st2;
            dr2=i;
        }
    }
    if(maxx>=sum - minn)
    {
        fout<<maxx<<" "<<p1<<" "<<dr1-p1+1;

    }
    else
    {
        fout<<sum-minn<<" "<<dr2+1<<" "<<n-(dr2-p2+1);
    }

    return 0;
}