Pagini recente » Cod sursa (job #775078) | Cod sursa (job #1413106) | Cod sursa (job #1328225) | Cod sursa (job #2622634) | Cod sursa (job #1062082)
#include <fstream>
#define maxn 5000000
using namespace std;
int sir[maxn], deck[maxn];
long long suma;
int main()
{
ifstream in("deque.in ");
ofstream out("deque.out");
int n,k;
in>>n>>k;
for (int i = 1; i <= n; i++) in>>sir[i];
int head=1;
int tail=0;
for (int i = 1; i <= n; i++)
{
while ( head <= tail && sir[i] <= sir[ deck[tail] ] )
tail--;
deck[++tail] = i;
if (deck[head] == i-k)
head++;
if (i >= k)
suma += sir[ deck[head] ];
}
out<<suma;
in.close();
out.close();
return 0;
}