Cod sursa(job #3292243)

Utilizator the_tortoiseTecuceanu Gabriel-Cristian the_tortoise Data 7 aprilie 2025 18:13:15
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <climits>
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;

void solve(vector<int> vec, int n)
{
	int dp = 0;
	int start = 0;

	int max = INT_MIN;
	int a, b;

	for (int i = 1; i < n; ++i) {
		if (dp >= 0) {
			dp = dp + vec[i];
		} else {
			dp = vec[i];
			start = i;
		}

		if (max < dp) {
			max = dp;
			a = start;
			b = i;
		}
	}

	ofstream out("ssm.out");
	out << max << ' ' << a + 1 << ' ' << b + 1 << '\n';
	out.close();
}

int main(void)
{
	int n;
	vector<int> vec;

	ifstream in("ssm.in");
	in >> n;
	for (int i = 0, x; i < n; i++) {
		in >> x;
		vec.push_back(x);
	}
	in.close();

	solve(vec, n);

	return 0;
}