Pagini recente » Cod sursa (job #2489438) | Cod sursa (job #2445182) | Cod sursa (job #1033726) | Cod sursa (job #461155) | Cod sursa (job #458078)
Cod sursa(job #458078)
#include <cstdio>
#define file_in "deque.in"
#define file_out "deque.out"
#define nmax 5010010
int n,k;
int v[nmax];
int d[nmax];
void citire()
{
freopen(file_in,"r",stdin);
freopen(file_out,"w",stdout);
scanf("%d %d", &n, &k);
for (int i=1;i<=n;++i)
scanf("%d", &v[i]);
}
void solve()
{
int p=1;
int u=0;
int i;
long long suma=0;
for (i=1;i<=n;++i)
{
while(p<=u && v[i]<=v[d[u]]) u--;
d[++u]=i;
if (d[p]==i-k) p++;
if (i>=k)
suma+=v[d[p]];
}
printf("%lld", suma);
}
int main()
{
citire();
solve();
fclose(stdin);
fclose(stdout);
return 0;
}