Pagini recente » Cod sursa (job #3176175) | Cod sursa (job #3211636) | Cod sursa (job #3245380) | Cod sursa (job #2753885) | Cod sursa (job #2894045)
#include <deque>
#include <iostream>
#include <fstream>
using namespace std;
#define nmax 5000000
ifstream f("deque.in");
ofstream g("deque.out");
int v[nmax], deq[nmax], n, k, st, dr;
int main()
{
long long s = 0;
f >> n >> k;
for( int i = 0; i < n; ++i )
f >> v[i];
deq[dr] = v[0];
for( int i = 1; i < k - 1; ++i )
{
for( ; v[i] < deq[dr] && dr >= st; --dr );
deq[++dr] = v[i];
}
for( int i = k - 1; i < n; ++i )
{
for( ; v[i] < deq[dr] && dr >= st; --dr );
deq[++dr] = v[i];
s += deq[st];
if( v[i - k + 1] == deq[st] )
++st;
}
g << s;
f.close();
g.close();
return 0;
}