Pagini recente » Cod sursa (job #2436783) | Cod sursa (job #794692) | Cod sursa (job #396777) | Cod sursa (job #50113) | Cod sursa (job #2815774)
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int main() {
vector<int> start_indexes;
int n, k, value, max_sum = INT_MIN, current_sum = 0, start_index = 0, start_pos = 0, end_pos = 0, a = 0, b = 0;
// current_sum - stores the maximum value between the current value and the sum of previously computed sum and current value
// max_sum - computes the maximum value between 0 and the largest value out of all current sums
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> value;
if (value > current_sum + value) {
start_index = i;
}
current_sum = max(current_sum + value, value);
if (current_sum > max_sum && i - start_index + 1 >= k) {
start_pos = start_index;
end_pos = i;
max_sum = current_sum;
}
}
fout << start_pos << ' ' << end_pos << ' ' << max_sum;
return 0;
}