Cod sursa(job #3211557)

Utilizator mirunabudacaMiruna B mirunabudaca Data 9 martie 2024 15:04:57
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int i, j, n, s, v[6000006], maxi, k, sf, sff, in, inf;
int main()
{
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>v[i];
    in=1;
    sf=0;
    for(i=1; i<=n; i++)
    {
        if(s>maxi)
        {
            maxi=s;
            inf=in;
            sff=sf;
        }
        s=s+v[i];
        sf=sf+1;
        if(s<0)
        {
            in=i+1;
            sf=i;
            s=0;
        }
    }

    if(s == 0 && inf == 0 && sff == 0)
    {
        maxi=-9999999;
        for(i=1; i<=n; i++)
            if(v[i] > maxi)
            {
                maxi=v[i];
                in=i;
                sf=i;
            }
        fout<<maxi<<" "<<in<<" "<<sf;
        return 0;
    }
    if(maxi >= s)
        fout<<maxi<<" "<<inf<<" "<<sff;
    else fout<<s<<" "<<in<<" "<<sf;
}