Cod sursa(job #3164956)

Utilizator AlexSerban21Serban Alexandru AlexSerban21 Data 4 noiembrie 2023 20:36:55
Problema Buline Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.34 kb
#include <fstream>
using namespace std;
ifstream fin ("buline.in");
ofstream fout ("buline.out");
int nr,n,ok,i,stt1,stt2,lg1,lg2,dr2,st1,st2,poz,x,sum,smin,smax,s1,s2,maxx;
int main ()
{
    fin>>n>>x>>ok;
    if (ok==0)
        x=-x;
    nr+=ok;
    sum=x;
    s1=s2=x;
    smin=smax=x;
    poz=1;
    stt1=stt2=dr2=1;
    st1=st2=lg1=lg2=1;
    maxx=x;
    for (i=2; i<=n; i++)
    {
        fin>>x>>ok;
        nr+=1-ok;
        if (ok==0)
            x=-x;
        sum+=x;
        if (x>maxx)
        {
            maxx=x;
            poz=i;
        }
        if (s1+x<x)
        {
            s1=x;
            stt1=i;
        }
        else
            s1+=x;
        if (s2+x>x)
        {
            s2=x;
            stt2=i;
        }
        else
            s2+=x;
        if (s1>smax)
        {
            smax=s1;
            st1=stt1;
            lg1=i-st1+1;
        }
        if (s2<smin)
        {
            smin=s2;
            st2=stt2;
            dr2=i;
            lg2=i-st2+1;
        }
    }
    if (nr==n)
    {
        fout<<maxx<<" "<<poz<<" 1";
        return 0;
    }
    dr2++;
    if (dr2>n)
        dr2=1;
    if (smax>sum-smin||(smax==sum-smin&&st1<dr2))
        fout<<smax<<" "<<st1<<" "<<lg1;
    else
        fout<<sum-smin<<" "<<dr2<<" "<<n-lg2;
    return 0;
}