Pagini recente » Cod sursa (job #880703) | Cod sursa (job #2399890) | Cod sursa (job #1764754) | Cod sursa (job #3150638) | Cod sursa (job #2884880)
#include<bits/stdc++.h>
using namespace std;
ifstream f("deque.in");
ofstream g("deque.out");
struct element
{ long long val,index;};
long long front = 10000002, back = front - 1, size = 0;
element dq[5000005];
bool empty(long long dim, long long fata) {
if(dim == fata) return true;
return false;
}
void push_back(element nr) {
back++;
dq[back] = nr;
size++;
}
void pop_front() {
front++;
size--;
}
void pop_back() {
back--;
size--;
}
element qfront(element dq[]) {
return dq[front];
}
element qback(element dq[]) {
return dq[back];
}
int main() {
long long n, k, sum = 0;
f >> n;
f >> k;
for(long long i = 1; i <= n; i++) {
element x; f >> x.val;
x.index = i;
while(size > 0 && qback(dq).val >= x.val)
pop_back();
push_back(x);
if(i >= k)
{ sum += qfront(dq).val;
g << qfront(dq).val << ' '; }
if(i >= qfront(dq).index + k - 1)
pop_front();
}
g << sum;
g.close();
return 0;
}