Cod sursa(job #2922645)

Utilizator raresgherasaRares Gherasa raresgherasa Data 9 septembrie 2022 14:39:27
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.57 kb
#include <bits/stdc++.h>

using namespace std;

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

int ansL, ansR, l = 1, n, sum = 0, mx = -INT_MAX;

int main(){
  fin >> n;
  for (int i = 1; i <= n; i++){
    int x; fin >> x;
    if (x > mx){
      mx = x;
      ansL = l;
      ansR = i;
    }
    sum += x;
    if (sum < 0){
      sum = 0;
      l = i + 1;
    }
    else{
      if (sum > mx || (sum == mx && i - l < ansR - ansL)){
        mx = sum;
        ansR = i;
        ansL = l;
      }
    }
  }
  fout << mx << " " << ansL << " " << ansR;
}