Pagini recente » Cod sursa (job #2932296) | Cod sursa (job #2572011) | Cod sursa (job #52296) | Cod sursa (job #513915) | Cod sursa (job #2907096)
#include<stdio.h>
#include <iostream>
#include <fstream>
#include <vector>
// https://infoarena.ro/problema/ssm
int main()
{
std::vector<int> nums;
int n_nums, i, best_start_seq, best_end_seq, cur_start_seq, cur_sum, best_sum;
std::ifstream fin("ssm.in");
std::ofstream fout("ssm.out");
fin >> n_nums;
nums.resize(n_nums);
for (int i = 0; i < n_nums; i++)
fin >> nums[i];
best_start_seq = 0;
cur_sum = 0;
best_sum = 0;
cur_start_seq = 0;
for (i = 0; i < n_nums; i++)
{
if (cur_sum < 0) {
cur_sum = nums[i];
cur_start_seq = i;
}
else cur_sum += nums[i];
if (best_sum < cur_sum)
{
//if (i + 1 < n_nums)
//{
// if (nums[i + 1] < 0)
// {
// best_sum = cur_sum;
// best_start_seq = cur_start_seq;
// best_end_seq = i;
// }
//}
//else
//{
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 + 1);
printf("end: %d\n", best_end_seq + 1);
fout << best_sum << ' ';
fout << best_start_seq + 1 << ' ';
fout << best_end_seq + 1 << ' ';
return 0;
}