Cod sursa(job #2545118)

Utilizator urtiComanac Dragos urti Data 12 februarie 2020 20:43:17
Problema Subsecventa de suma maxima Scor 35
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");

int main()
{
    long int n,i,j, mx_val, mx_index;
    fin>>n;
    long int arr[n], v[n];
    for(i=0;i<n;i++)
        fin>>arr[i];
    v[0] = arr[0];
    mx_val = v[0];
    mx_index = 0;
    for(i=1;i<n;i++)
    {
        if(arr[i]+v[i-1]<0)
            v[i]=arr[i];
        else
            v[i]=arr[i]+v[i-1];
        if (v[i] > mx_val)
        {
            mx_val = v[i];
            mx_index = i;
        }
    }
    for(i=mx_index;i>=0;i--)
        if(v[i]<0)
        break;
    if (i!= mx_index)
        fout<<mx_val<<' '<<i+2<<' '<<mx_index+1;
    else
        fout<<mx_val<<' '<<i+1<<' '<<mx_index+1;



}