Cod sursa(job #3309105)

Utilizator andreic06Andrei Calota andreic06 Data 1 septembrie 2025 09:43:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <bits/stdc++.h>

using namespace std;
using int64 = long long;
const int64 myINF = 3e9;
const int N_MAX = 6e6;

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

int N; int a[1 + N_MAX];

int main()
{
   fin >> N;
   for (int i = 1; i <= N; i ++)
       fin >> a[i];

   int64 sum = 0;
   int64 min_sum = 0, j = 1;
   int64 answer = -myINF; int left, right;

   for (int i = 1; i <= N; i ++) {
      sum += a[i];
      if (sum - min_sum > answer) {
        answer = sum - min_sum;
        left = j; right = i;
      }
      else if (sum - min_sum == answer && j < left) {
        left = j;
        right = i;
      }

      if (min_sum > sum) {
        min_sum = sum;
        j = i + 1;
      }
   }
   fout << answer << " " << left << " " << right;

    return 0;
}