Cod sursa(job #2731271)

Utilizator vladvlad00Vlad Teodorescu vladvlad00 Data 27 martie 2021 17:11:44
Problema Subsecventa de suma maxima Scor 95
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.79 kb
#include <fstream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#include <cmath>
#include <cstring>
#include <iomanip>
#include <unordered_map>
#include <queue>

using namespace std;

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

int n;

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

	cin >> n;
	vector<int> v(n + 1);
	vector<int> s(n + 1);

	int minim = 0, maxim = 0, pozmin = 0;
	int st = 0, dr = 0;
	for (int i = 1; i <= n; i++)
	{
		cin >> v[i];
		s[i] = s[i - 1] + v[i];
		int sum_current = s[i] - minim;
		if (sum_current > maxim)
		{
			maxim = sum_current;
			st = pozmin + 1;
			dr = i;
		}
		if (s[i] < minim)
		{
			minim = s[i];
			pozmin = i;
		}
	}
	cout << maxim << ' ' << st << ' ' << dr << '\n';
	return 0;
}