Cod sursa(job #3195587)

Utilizator DariusHHanganu Darius DariusH Data 21 ianuarie 2024 12:51:32
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

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


int main()
{
  int n, val, l, r, i, st, dr, sum, maxsum;
  fin >> n;
  l = r = 0;
  maxsum = 0;
  st = dr = 0;
  sum = 0;
  for(i = 0; i < n; ++i) {
    fin >> val;
    if(i > 0) {
      if(sum >= 0) {
        sum += val;
        r = i;
        if(sum > maxsum) {
          maxsum = sum;
          st = l;
          dr = r;
        }
      }else{
        sum = val;
        l = r = i;
      }
    }else{
      sum = val;
    }
  }

  if(sum > maxsum) {
    maxsum = sum;
    st = l;
    dr = r;
  }

  fout << maxsum << ' ' << st + 1 << ' ' << dr + 1 << '\n';

  return 0;
}