Pagini recente » Cod sursa (job #1891553) | Cod sursa (job #2450225) | Cod sursa (job #2842611) | Cod sursa (job #1611035) | Cod sursa (job #2635854)
#include <fstream>
#include <deque>
using namespace std;
deque <int> deck;
const int NMAX = 5000005;
int v[NMAX], k, n;
ifstream fin("deque.in");
ofstream fout("deque.out");
int main()
{
int i;
long long s=0;
fin >> n >> k;
for(i = 1; i <= n; i++){
fin >> v[i];
}
deck.push_back(10000050);
for(i = 1; i <= n; i++){
while(v[i] <= v[ deck[deck.back()] ] && deck.size() > 0)
deck.pop_back();
deck.push_back(i);
if(deck.front() == i - k)
deck.pop_front();
if(i >= k)
s += v[ deck.front() ];
}
fout << s;
return 0;
}