Pagini recente » Monitorul de evaluare | Cod sursa (job #2699359) | Cod sursa (job #2736583) | Cod sursa (job #2240404) | Cod sursa (job #3224377)
#include <bits/stdc++.h>
using namespace std;
#define TITLE "deque"
#define ll long long
ifstream f (TITLE".in");
ofstream g (TITLE".out");
int v[5000010];
int solve()
{
ll n,k;
f>>n>>k;
for(int i=1; i<=n; i++)
f>>v[i];
ll answer=0;
deque<int>DQ;
for(int i=1; i<k; i++)
{
while(!DQ.empty() && v[DQ.back()]>=v[i])
DQ.pop_back();
DQ.push_back(i);
}
for(int i=k; i<=n; i++)
{
while(!DQ.empty() && v[DQ.back()]>=v[i])
DQ.pop_back();
DQ.push_back(i);
if(DQ.front()==i-k)
DQ.pop_front();
answer+=v[DQ.front()];
}
g<<answer;
return 0;
}
int main()
{
solve();
return 0;
}