Pagini recente » Cod sursa (job #634813) | Cod sursa (job #285823) | Cod sursa (job #1788324) | Cod sursa (job #824325) | Cod sursa (job #3126997)
#include <iostream>
#include <deque>
#include <fstream>
using namespace std;
int main() {
int n,k,i;
long s=0;
ifstream f("deque.in");
ofstream g("deque.out");
f>>n>>k;
int Coada[n];
for (i=0;i<n;i++) {
f>>Coada[i];
}
deque<int>q;
for (i=0;i<n;i++) {
while (!q.empty()&&Coada[i]<=Coada[q.back()]) { ///tin coada in ordine crescatoare,pentru a tine elementul din coada ca fiind minimul.
q.pop_back();
}
q.push_back(i);
if(q.front()<=i-k) {
q.pop_front();
}
if (i>=k-1) {
s+=Coada[q.front()];
}
}
g <<s<< endl;
f.close();
g.close();
return 0;
}