Cod sursa(job #2719317)

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

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

#define nrm 6000005
int n;
int 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();

    int maxim=INT_MIN,minim=INT_MAX,stop,start;
    for(int i=1;i<=n;i++)
    {
        if(maxim<sume[i])
        {
            maxim=sume[i];
            stop=i;
        }
    }
    for(int i=1;i<=stop;i++)
    {
        if(minim>sume[i])
        {
            minim=sume[i];
            start=i;
        }
    }
    if(maxim-minim>maxim && stop>start)
    {
        fout<<maxim-minim<<" "<<start+1<<" "<<stop;
    }
    else
    {
        fout<<maxim<<1<<" "<<stop;
    }
    fin.close();
    fout.close();
    return 0;
}