Pagini recente » Cod sursa (job #1271528) | Istoria paginii runda/conc1 | Cod sursa (job #2114014) | Cod sursa (job #2471255) | Cod sursa (job #2051906)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("deque.in");
ofstream fout("deque.out");
int a[5000001], i,x,k,n;
long long s;
deque<pair<int,int>> d;
int main()
{
fin>>n>>k;
for (i=1;i<=n;i++)
fin>>a[i];
for (i=1;i<=k;i++)
{while (!d.empty()&&d.front().first>a[i])
d.pop_front();
d.push_front(make_pair(a[i], i));
}
auto t=d.back();
s+=t.first;
for (i=k+1;i<=n;i++)
{
auto t =d.back();
if (t.second<=i-k)
d.pop_back();
while(!d.empty()&&d.front().first>a[i])
d.pop_front();
d.push_front(make_pair(a[i],i));
t=d.back();
s+=t.first;
}
fout<<s;
return 0;
}