Cod sursa(job #3164924)

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

        fout<<sum-smin<<" "<<dr2<<" "<<n-lg2;
    }
    return 0;
}