Pagini recente » Atasamentele paginii Profil alexevladgabriel | Cod sursa (job #504158) | Cod sursa (job #504223) | Cod sursa (job #1786048) | Cod sursa (job #769172)
Cod sursa(job #769172)
#include<stdio.h>
#define MAXN 5000002
int v[ MAXN ], deque[ MAXN ], n, k;
long long int s;
void read()
{
FILE *f = fopen("deque.in", "r");
fscanf(f, "%d %d", &n, &k);
for(int i = 1; i <= n; i++)
fscanf(f, "%d", &v[i]);
fclose(f);
}
void solve()
{
for(int i = 1, st = 1, end = 0; i <= n; i++)
{
while(v[i] <= v[ deque[end] ] && st <= end)
end--;
end++, deque[end] = i;
if(deque[st] == i - k)
st++;
if(i >= k)
s += v[ deque[st] ];
}
}
void write()
{
FILE *g = fopen("deque.out", "w");
fprintf(g, "%lld\n", s);
fclose(g);
}
int main()
{
read();
solve();
write();
return 0;
}