Cod sursa(job #3042182)

Utilizator francescaffeier francecsca francescaf Data 4 aprilie 2023 15:50:28
Problema Subsecventa de suma maxima Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <bits/stdc++.h>

using namespace std;

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

int n,v[6000001],c;

int main()
{
    fin >> n;
    for (int i=1;i<=n;i++)
    {
        fin >> v[i];
        if (v[i]<0)
            c++;
    }
    if (c==n)
    {
        int max1=-1000000000,pi,pf;
        for (int i=1;i<n;i++)
        {
            if (v[i]>max1)
                max1=v[i],pi=i,pf=i;
        }
        fout << max1 << " " << pi << " " << pf;
        return 0;
    }
    int max1=-1,s=0,pi,pf;;
    for (int i=1;i<=n;i++)
    {
        s+=v[i];
        if (s<0)
            s=0,pi=i+1;
        if (s>max1)
            max1=s,pf=i;
    }
    fout << max1 << " " << pi << " " << pf;
    return 0;
}