Cod sursa(job #2910154)

Utilizator radu.seitanSeitan Radu-Catalin radu.seitan Data 18 iunie 2022 16:49:30
Problema Subsecventa de suma maxima Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <stdio.h>
#include <iostream>
#include <fstream>
#include <vector>

// https://infoarena.ro/problema/ssm 
int main()
{
	int n_nums, i, best_start_seq, best_end_seq, cur_start_seq, cur_sum, best_sum, nums;
	std::ifstream fin("ssm.in");
	std::ofstream fout("ssm.out");
	best_end_seq = 0;

	fin >> n_nums;

	best_start_seq = 0;
	cur_sum = 0;
	best_sum = INT32_MIN;
	cur_start_seq = 0;

	for (i = 1; i <= n_nums; i++)
	{
		fin >> nums;
		if (cur_sum < 0) {
			cur_sum = nums;
			cur_start_seq = i;
		}
		else cur_sum += nums;
		if (best_sum < cur_sum)
		{
				best_sum = cur_sum;
				best_start_seq = cur_start_seq;
				best_end_seq = i;
		}
	}
	printf("Sum: %d\n", best_sum);
	printf("Start: %d\n", best_start_seq);
	printf("end: %d\n", best_end_seq);
	fout << best_sum << ' ';
	fout << best_start_seq << ' ';
	fout << best_end_seq;

	fin.close();
	fout.close();
	return 0;
}