Cod sursa(job #2694196)

Utilizator Antonia_onisoruantonia onisoru Antonia_onisoru Data 8 ianuarie 2021 14:09:06
Problema Subsecventa de suma maxima Scor 60
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream in("ssm.in");
ofstream out("ssm.out");

const int MAXN = 6000000;

int v[MAXN], sum[MAXN];
int inc[MAXN], sf[MAXN];

int main()
{
    int n, i, sum_max, inc_sum, sf_sum, inc1;
    in>>n;
    for( i = 0; i < n; i++ )
      in>>v[i];
    sum[0] = v[0];
    for( i = 0; i < n; i++ ){
      if( sum[i - 1] > 0 ){
        sum[i] = sum[i - 1] + v[i];
        sf[i] = i;
        inc[i] = inc1;
      }
      else{
        sum[i] = v[i];
        inc1 = i;
      }
    }
    sum_max = v[0];
    for( i = 0; i < n; i++ ){
      //out<<inc[i]<<" "<<sf[i - 1]<<'\n';
      if( sum[i] > sum_max ){
        sum_max = sum[i];
        inc_sum = inc[i];
        sf_sum = sf[i];
      }
    }
    out<<sum_max<<" "<<inc_sum + 1<<" "<<sf_sum + 1;
    return 0;
}