Cod sursa(job #3165400)

Utilizator Bianca2507Negret Bianca Bianca2507 Data 6 noiembrie 2023 09:15:14
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <fstream>
#include <climits>
using namespace std;
ifstream cin("buline.in");
ofstream cout("buline.out");
long long n,mini,st,st1,s,dr,suma,maxi;
long long a,stm,st1m,drm,smin,b;
int main()
{
    cin>>n;
    cin>>a>>b;
    st=st1=dr=1;
    stm=st1m=drm=1;
    if(b==1)
    {
    mini=maxi=a;
    suma=a;
    s=a;
    smin=a;
    }
    else
    {
        a=-a;
        mini=maxi=a;
    suma=a;
    s=a;
    smin=a;
    }

    for(int i=2; i<=n; i++)
    {
        cin>>a>>b;
        if(b==0)
            a=-a;
        suma+=a;
        if(s+a>=a)
            s+=a;
        else
        {
            s=a;
            st=i;
        }
        if(s>maxi)
        {
            maxi=s;
            st1=st;
            dr=i;
        }


        if(smin+a<a)
            smin+=a;
        else
        {
            smin=a;
            stm=i;
        }
        if(smin<=mini)
        {
            mini=smin;
            st1m=stm;
            drm=i;
        }

    }
    if(suma-mini<maxi)
    {
        cout<<maxi<<" "<<st1<<" "<<dr-st1+1<<" ";

    }
    else
    {
        cout<<suma-mini<<" "<<drm+1<<" "<<n-drm+st1m-1;
    }
    return 0;
}