Pagini recente » Cod sursa (job #2404109) | Cod sursa (job #1845517) | Cod sursa (job #884739) | Cod sursa (job #2888481) | Cod sursa (job #2911592)
#include <iostream>
#include <fstream>
using namespace std;
int maxx = -25005, countt, positive = 0, last_left, act, n, k, v[50001], leftt = 1, rightt = 1;
int main() {
ifstream fin("secv2.in");
ofstream fout("secv2.out");
fin >> n >> k;
for (int i = 1; i <= n; ++i) {
fin >> v[i];
if (v[i] > 0) {
++positive;
}
}
if (positive > 0) {
for (int i = 1; i <= n; ++i) {
act = act + v[i];
++countt;
if (countt == 1) {
leftt = i;
}
if (maxx < act) {
maxx = act;
rightt = i;
last_left = leftt;
}
if (act < 0) {
act = 0;
countt = 0;
}
}
if ((rightt - last_left + 1) >= k) {
fout << last_left << ' ' << rightt << ' ' << maxx;
}
} else {
int summ = 0, maxxsumm = 0, lft = 1, rght = 1;
for (int i = 1; i <= k; ++i) {
maxxsumm = maxxsumm + v[i];
rght = i;
}
summ = maxxsumm;
for (int i = k + 1; i <= n; ++i) {
summ = summ + (v[i - k] * -1) + v[i];
if (summ > maxxsumm) {
maxxsumm = summ;
lft = i - k + 1;
rght = i;
}
}
fout << lft << ' ' << rght << ' ' << maxxsumm;
}
return 0;
}