Pagini recente » Cod sursa (job #666435) | Cod sursa (job #1562803) | Cod sursa (job #933362) | Cod sursa (job #1707795) | Cod sursa (job #2892919)
#include <bits/stdc++.h>
using namespace std;
/// Subsecventa De Suma Maxima Speedrun
/// 3
/// 2
/// 1
void read_input(vector<int> &nums, string filename_in) {
ifstream in(filename_in);
size_t N;
in >> N;
nums.resize(N);
for(size_t i = 0; i < N; i++)
in >> nums[i];
in.close();
}
vector<int> solve(vector<int> &nums) {
int max_sum = INT_MIN;
int max_i, max_j;
max_i = max_j = 0;
int crt_sum = 0;
int crt_i, crt_j;
crt_i = crt_j = 0;
for(size_t i = 0; i < nums.size(); i++) {
if(crt_sum < 0) {
crt_sum = nums[i];
crt_i = i;
} else {
crt_sum += nums[i];
}
crt_j = i;
if(crt_sum > max_sum) {
max_sum = crt_sum;
max_i = crt_i;
max_j = crt_j;
}
}
return {max_sum, max_i + 1, max_j + 1};
}
void write_output(vector<int> res, string filename_out) {
ofstream out(filename_out);
for(int x : res)
out << x << ' ';
out.close();
}
int main() {
vector<int> nums;
read_input(nums, "ssm.in");
vector<int> res = solve(nums);
write_output(res, "ssm.out");
return 0;
}