Cod sursa(job #2757293)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 4 iunie 2021 21:16:04
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <cstdio>
#include <limits>

using namespace std;

int main()
{
  freopen("ssm.in", "r", stdin);
  freopen("ssm.out", "w", stdout);

  int N;
  scanf("%d", &N);
  
  int bestStart, bestEnd;
  int best = numeric_limits<int>::min();

  int crtLeft = 1; // current sum's starting point
  int crtSum = 0;
  int crt;
  
  for (int i = 1; i <= N; ++i) {
    scanf("%d", &crt);
    crtSum += crt;

    if (crtSum < crt) {
      crtSum = crt;
      crtLeft = i;
    }

    if (crtSum > best) {
      best = crtSum;
      bestStart = crtLeft;
      bestEnd = i;
    }
  }

  printf("%d %d %d\n", best, bestStart, bestEnd);
  
  return 0;
}