Pagini recente » Arhiva de probleme | Cod sursa (job #1073749) | Cod sursa (job #1858231) | Cod sursa (job #634828) | Cod sursa (job #2205468)
#include<iostream>
#include<cstdio>
#include<deque>
using namespace std;
struct elem
{
long long val, poz;
};
deque<elem>d;
elem aux;
long long n,k,s,i,x;
int main()
{
freopen("deque.in","r",stdin);
freopen("deque.out","w",stdout);
cin>>n>>k;
cin>>x;
aux.val=x;
aux.poz=1;
d.push_back(aux);
for(i=2; i<=k; i++)
{
cin>>x;
while(d.empty()==false && x<d.back().val) d.pop_back();
aux.val=x;
aux.poz=i;
d.push_back(aux);
}
s+=d.front().val;
for(i=k+1; i<=n; i++)
{
if(d.front().poz<=i-k) d.pop_front();
cin>>x;
while(d.empty()==false && x<d.back().val) d.pop_back();
aux.val=x;
aux.poz=i;
d.push_back(aux);
s+=d.front().val;
}
cout<<s;
return 0;
}