Cod sursa(job #2604533)

Utilizator DanGerosPetrica Marius Cristian DanGeros Data 22 aprilie 2020 20:45:55
Problema Subsecventa de suma maxima Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.04 kb
#include <iostream>
#include <fstream>
using namespace std;
    ifstream fin("ssm.in");
    ofstream fout("ssm.out");

    int vect[6000000],vect_suma[6000000],n;
int main()
{
    fin>>n;
    for (int i=1;i<=n;i++) {
        fin>>vect[i];
        vect_suma[i]+=vect[i]+vect_suma[i-1];
    }
    int suma=-200000000,indice_inceput,indice_sfarsit;
    if (n != 1) {
        for (int i = 1 ; i<=n ; i++ )
            for (int j=i+1 ; j<=n; j++ ) {
                if (vect_suma[j]-vect_suma[i-1] > suma) {
                    suma=vect_suma[j]-vect_suma[i-1];
                    indice_inceput=i;
                    indice_sfarsit=j;
                }
                if (vect_suma[j]-vect_suma[i-1] == suma && j-i<indice_sfarsit-indice_inceput) {
                    indice_inceput=i;
                    indice_sfarsit=j;
                }
            }
    }
    else {
       suma=vect[1];
       indice_inceput=1;
       indice_sfarsit=1;
      }
    fout<<suma<<" "<<indice_inceput<<" "<<indice_sfarsit;
    return 0;
}