Pagini recente » Cod sursa (job #1784124) | Cod sursa (job #2956663) | Cod sursa (job #1970737) | Cod sursa (job #1574729) | Cod sursa (job #2913946)
#include <fstream>
using namespace std;
ifstream fin("secv2.in");
ofstream fout("secv2.out");
int main() {
int n, k, best = 0, value, startIdx = 1, maxStartIdx = 1, maxEndIdx = 1, maxBest = -25001, counter = 0, first = 0;
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> value;
if (i <= k) {
first += value;
}
if (best + value >= value) {
best += value;
++counter;
} else if (value > best) {
startIdx = i;
best = value;
counter = 0;
}
if (counter >= k && best > maxBest) {
maxBest = best;
maxStartIdx = startIdx;
maxEndIdx = i;
}
}
if (maxBest == -25001) {
fout << 1 << " " << k << " " << first;
} else {
fout << maxStartIdx << " " << maxEndIdx << " " << maxBest;
}
return 0;
}
/*
int main() {
int n, k, best = 0, value, startIdx = 1, maxStartIdx = 1, maxEndIdx = 1, maxBest = -25001, counter = 0;
fin >> n >> k;
for (int i = 1; i <= k; ++i) {
fin >> value;
best += value;
}
if (best > maxBest) {
maxBest = best;
maxEndIdx = k;
counter = k;
}
for (int i = k + 1; i <= n; i++) {
fin >> value;
if (best + value >= value) {
best += value;
++counter;
} else if (value > best) {
startIdx = i;
best = value;
counter = 0;
}
if (counter >= k && best > maxBest) {
maxBest = best;
maxStartIdx = startIdx;
maxEndIdx = i;
}
}
fout << maxStartIdx << " " << maxEndIdx << " " << maxBest;
return 0;
}
*/