Pagini recente » Cod sursa (job #1319543) | Statistici abcdefg (abcdefg777222) | Cod sursa (job #1185032) | Cod sursa (job #1828997) | Cod sursa (job #2881292)
#include <fstream>
#include <deque>
using namespace std;
ifstream input("deque.in");
ofstream output("deque.out");
struct Numar{
int valoare;
int pozitie;
};
int main(){
int n, k;
long long s = 0;
deque<Numar> dq;
Numar x;
input>>n>>k;
for(int i = 1; i <= k; i++){
input>>x.valoare;
x.pozitie = i;
while(!dq.empty() && dq.back().valoare >= x.valoare){
dq.pop_back();
}
dq.push_back(x);
}
s = dq.front().valoare;
for(int i = k + 1; i <= n; i++){
input>>x.valoare;
x.pozitie = i;
while(!dq.empty() && dq.back().valoare >= x.valoare){
dq.pop_back();
}
dq.push_back(x);
while(dq.front().pozitie <= i - k){
dq.pop_front();
}
s += dq.front().valoare;
}
output<<s;
return 0;
}