Cod sursa(job #2535416)

Utilizator andrei_laurentiuRadu Andrei-Laurentiu andrei_laurentiu Data 31 ianuarie 2020 20:42:01
Problema Subsecventa de suma maxima Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#define nmax 30005
using namespace std;
int sum[nmax], n, v[nmax];
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int main()
{
    int i, j;
    fin>>n;
    for(i = 1; i<=n; i++)
        fin>>v[i];
    int maxi = v[1], inf = 1, sup = 1;
    sum[1] = v[1];
    for(i = 2; i<=n; i++)
    {
        sum[i] = sum[i-1] + v[i];
        if(maxi<sum[i])
            maxi = sum[i];
    }//aici creez sumele partiale si vad secventa de suma maxima care incepe cu 1
    for(i = 1; i<n; i++)// secventa de suma maxima care incepe cu i+1
    {
        for(j = i+1; j<=n; j++) //si se termina cu j
        {
            if(maxi< sum[j] - sum[i])
            {
                maxi = sum[j] - sum[i];
                inf = i+1;
                sup = j;
            }
        }
    }
    fout<<maxi<<" "<<inf<<" "<<sup;

    return 0;
}