Pagini recente » Arhiva de probleme | Rating Borcan Razvan Petru (Borcan_Razvan) | Cod sursa (job #1404769)
#include <bits/stdc++.h>
using namespace std;
deque<int>q;
int v[5000005], i, n, k, sol;
int main()
{
freopen("deque.in", "r", stdin);
freopen("deque.out", "w", stdout);
scanf("%d%d", &n, &k);
for(i = 1; i < k; i++)
{
scanf("%d", &v[i]);
while(q.size() && v[q.back()] >= v[i])
q.pop_back();
q.push_back(i);
}
for(; i <= n; i++)
{
scanf("%d", &v[i]);
while(q.size() && v[q.back()] >= v[i])
q.pop_back();
q.push_back(i);
if(i - q.front() == k)
q.pop_front();
sol += v[q.front()];
}
printf("%d\n", sol);
return 0;
}