Pagini recente » antr | Cod sursa (job #855944) | Cod sursa (job #843746) | Cod sursa (job #111736) | Cod sursa (job #2714864)
#include <fstream>
#include <deque>
using namespace std;
int n, k, st, dr;
int a[50001];
const int Inf = 2e9;
int smax = -Inf;
void read() {
int i;
ifstream f("secv2.in");
f >> n >> k;
for (i = 1; i <= n; i++)
f >> a[i];
f.close();
}
void solve() {
int i;
for (i = 1; i <= n; i++)
a[i] += a[i - 1];
deque<int> dq;
i = 1;
while (i < k) {
dq.emplace_back(i);
i++;
}
for (; i <= n; i++) {
dq.push_back(i);
if (dq.size() >= k && a[dq.back()] - a[dq.front() - 1] > smax) {
smax = a[dq.back()] - a[dq.front() - 1];
st = dq.front();
dr = dq.back();
}
while (dq.size() > k && a[dq.back()] - a[dq.front()] >= smax)
dq.pop_front();
}
}
void output() {
ofstream g("secv2.out");
g << st << ' ' << dr << ' ' << smax;
g.close();
}
int main() {
read();
solve();
output();
return 0;
}