Cod sursa(job #2604529)

Utilizator DanGerosPetrica Marius Cristian DanGeros Data 22 aprilie 2020 20:38:50
Problema Subsecventa de suma maxima Scor 30
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 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=0,indice_inceput,indice_sfarsit;
    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;
            }
        }
    fout<<suma<<" "<<indice_inceput<<" "<<indice_sfarsit;
    return 0;
}