Cod sursa(job #3222393)

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

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

const int Nmax=6000005;

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

int main()
{
    fin>>n;
    for(int i=1; i<=n; i++)
        fin>>v[i];
    s[1]=v[1];
    for(int i=2; i<=n; i++)
        s[i]=s[i-1]+v[i];
    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;
        }
    }
    fout<<sol<<' '<<pozmin<<' '<<pozmax;
    fin.close();
    fout.close();
    return 0;
}