Pagini recente » Cod sursa (job #2719061) | Cod sursa (job #905740) | Cod sursa (job #1811038) | Cod sursa (job #1065885) | Cod sursa (job #1065199)
#include <fstream>
#define maxn 5000010
using namespace std;
int n,k;
int sir[maxn], deck[maxn];
long long suma;
int main()
{
ifstream in("deque.in ");
ofstream out("deque.out");
in>>n>>k;
for (int i = 1; i <= n; i++) in>>sir[i];
int head=1;//front
int tail=0;//back
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<<"\n";
in.close();
out.close();
return 0;
}