Pagini recente » Cod sursa (job #2047027) | Cod sursa (job #2701658) | Cod sursa (job #1013638) | Cod sursa (job #1810950) | Cod sursa (job #492020)
Cod sursa(job #492020)
#include <stdio.h>
#include <deque>
#define NMax 5000000
using namespace std;
const char IN[]="deque.in",OUT[]="deque.out";
typedef long long ll;
int N,K;
ll sol;
int a[NMax];
int main()
{
int i,x;
deque<int> de;
freopen(IN,"r",stdin);
scanf("%d%d",&N,&K);
for (i=0;i<N;i++)
{
scanf("%d",a+i);
x=a[i];
while (!de.empty() && (x<a[de.back()] || i-de.back()>=K))
de.pop_back();
de.push_back(i);
while (!de.empty() && i-de.front()>=K)
de.pop_front();
if (i>=K-1)
sol+=a[de.front()];
}
freopen(OUT,"w",stdout);
printf("%lld\n",sol);
fclose(stdout);
return 0;
}