Cod sursa(job #2719312)

Utilizator AndiAndi39Sabo Andrei Claudiu AndiAndi39 Data 9 martie 2021 19:19:56
Problema Subsecventa de suma maxima Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include<iostream>
#include<fstream>
#include<climits>

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

#define nrm 6000005
long long n;
long long sume[nrm];

void citire()
{
    fin>>n;
    for(int i=1;i<=n;i++)
    {
        long long x;
        fin>>x;
        sume[i]=sume[i-1]+x;
    }
}

int main ()
{
    citire();

    long long maxim=INT_MIN,minim=INT_MAX,stop,start;
    for(int i=1;i<=n;i++)
    {
        if(maxim<sume[i])
        {
            maxim=sume[i];
            stop=i;
        }
        if(minim>sume[i])
        {
            minim=sume[i];
            start=i;
        }
    }

    if(maxim-minim>maxim)
    {
        fout<<maxim-minim<<" "<<start+1<<" "<<stop;
    }
    else
    {
        fout<<maxim<<1<<" "<<stop;
    }
    fin.close();
    fout.close();
    return 0;
}