Pagini recente » Cod sursa (job #1718210) | Statistici SuperScoala (cont_superscoala) | Cod sursa (job #3323815) | Cod sursa (job #904120) | Cod sursa (job #2285613)
#include <stdio.h>
#include <deque>
using namespace std;
typedef long long ll;
const int NMAX = 5000005;
ll N, K;
ll vec[NMAX];
int main() {
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%lld %lld", &N, &K);
ll sum = 0;
deque<ll> d;
for (int i = 1; i <= N; ++i) {
scanf("%lld", &vec[i]);
}
for (int i = 1; i <= N; ++i) {
while (d.size() > 0 && vec[i] < vec[d.back()]) {
d.pop_back();
}
d.push_back(i);
if (i >= K) {
ll f = d.front();
printf("%lld ", vec[f]);
sum += vec[f];
}
if (i - d.front() + 1 >= K) {
d.pop_front();
}
}
printf("\n");
printf("%lld\n", sum);
fclose(stdin);
fclose(stdout);
return 0;
}