Cod sursa(job #3222401)

Utilizator iuliageambazuGeambazu Iulia iuliageambazu Data 9 aprilie 2024 22:53:07
Problema Subsecventa de suma maxima Scor 85
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <bits/stdc++.h>

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

const int Nmax=6000005;

int x,n,l;
long long sum,s[Nmax],minim=LONG_MAX,sol=LONG_MIN,pozmin=0,pozmax=0;

int main()
{
    fin>>n>>x;
    s[1]=x;
    for(int i=2; i<=n; i++)
    {
        fin>>x;
        s[i]=s[i-1]+x;
    }
    for(int j=1; j<=n; j++)
    {
        if(s[j]<minim)
        {
            minim=s[j];
            pozmin=j+1;
        }
        sum=s[j]-s[pozmin-1];
        if(sum>sol)
        {
            sol=sum;
            pozmax=j;
            l=j-pozmin;
        }
        if(sum==sol)
        {
            if(j-pozmin<l)
            {
                sol=sum;
                pozmax=j;
                l=j-pozmin;
            }
        }
    }
    fout<<sol<<' '<<pozmin<<' '<<pozmax;
    fin.close();
    fout.close();
    return 0;
}