Cod sursa(job #2496207)

Utilizator CTI_KnightCir Constantin CTI_Knight Data 20 noiembrie 2019 14:00:20
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
// CTI
#include <bits/stdc++.h>

using namespace std;

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

int main()
{
	//ios::sync_with_stdio(false);
	//cin.tie(0);

	int n; in >> n;
   vector<int> v(n);
   for (int i = 0; i < n; ++i) {
      in >> v[i];
   }

   int max_sum   = -2000000000;
   int max_start = -1;
   int max_end   = -1;
   int curr_sum   = 0;
   int curr_start = 0;
   for (int i = 0; i < n; ++i) {
      if (curr_sum < 0) {
         curr_sum = v[i];
         curr_start = i;
      } else {
         curr_sum += v[i];
      }

      if (max_sum < curr_sum) {
         max_sum   = curr_sum;
         max_start = curr_start + 1;
         max_end   = i + 1; 
      }
   }

   out << max_sum << ' ' << max_start << ' ' << max_end;

	return 0;
}