Pagini recente » Cod sursa (job #2187542) | Cod sursa (job #3330938) | Cod sursa (job #275648) | Cod sursa (job #111210) | Cod sursa (job #3324638)
#include <fstream>
#include <vector>
using namespace std;
const int INF = 2000000000;
int main() {
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int N, K;
fin >> N >> K;
vector<int> P(N + 1);
P[0] = 0;
for (int i = 1; i <= N; ++i) {
int val;
fin >> val;
P[i] = P[i - 1] + val;
}
int max_sum = -INF;
int best_start = -1;
int best_end = -1;
int min_prefix = P[0];
int min_prefix_idx = 0;
for (int j = K; j <= N; ++j) {
int current_check_idx = j - K;
if (P[current_check_idx] < min_prefix) {
min_prefix = P[current_check_idx];
min_prefix_idx = current_check_idx;
}
int current_sum = P[j] - min_prefix;
if (current_sum > max_sum) {
max_sum = current_sum;
best_start = min_prefix_idx + 1;
best_end = j;
}
}
fout << best_start << " " << best_end << " " << max_sum << "\n";
fin.close();
fout.close();
return 0;
}