Pagini recente » Cod sursa (job #760906) | Profil StarGold2 | Cod sursa (job #164225) | Cod sursa (job #1871336) | Cod sursa (job #1156588)
#include <cstdio>
#include <deque>
using namespace std;
struct punct
{
int x, poz;
};
deque <punct> q;
int main()
{
int n, k, x;
long long sum=0;
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
scanf("%d %d", &n, &k);
for (int i = 1; i < k; ++i)
{
scanf("%d", &x);
punct aux;
aux.x = x;
aux.poz = i;
while ( !q.empty() && x < q.back().x )
q.pop_back();
q.push_back(aux);
}
for (int i = k; i <= n; ++i)
{
scanf("%d", &x);
punct aux;
aux.x = x;
aux.poz = i;
while ( !q.empty() && x < q.back().x )
q.pop_back();
q.push_back(aux);
sum += (long long) q.front().x;
if (q.front().poz == i-k) q.pop_front();
}
printf("%lld\n", sum);
return 0;
}