Pagini recente » Cod sursa (job #3287281) | Cod sursa (job #3173671) | Cod sursa (job #528) | Cod sursa (job #3191219) | Cod sursa (job #1004293)
#include<iostream>
#include<fstream>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<ctime>
using namespace std;
int n,a[5000005],k,deq[5000005];
long long suma;
inline void Citire()
{
int i;
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d%d",&n,&k);
for (i=1;i<=n;i++)
scanf("%d",&a[i]);
}
inline void Rezolva()
{
int i,minim=11000000,poz,pr,ul;
for (i=1;i<=k;i++)
{
deq[i]=a[i];
if (a[i]<minim)
minim=a[i];
}
pr=1;ul=k;
suma=suma+minim;
sort ( deq + 1 , deq + 1 + k );
for (i=k+1;i<=n;i++)
{while (a[i]<deq[ul] && ul>=pr)
ul--;
deq[++ul]=a[i];
if (a[i-k]==deq[pr])
pr++;
suma+=deq[pr];
}
printf("%lld",suma);
}
int main()
{
Citire();
Rezolva();
return 0;
}