Pagini recente » Cod sursa (job #1694615) | Cod sursa (job #489956) | Cod sursa (job #1927580) | Cod sursa (job #1813554) | Cod sursa (job #3197136)
#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
deque <int> q;
ifstream fin("deque.in");
ofstream fout("deque.out");
int n,k,a[5000001],mn,s;
int main()
{
fin>>n>>k;
a[0]=10000001;
for(int i=1;i<=k;i++)
{fin>>a[i];
if(a[i]<=a[mn]) mn=i,a[mn]=a[i];
}
q.push_front(mn);
for(int i=mn+1;i<=k;i++)
{while(!q.empty() && a[i]<=a[q.front()])
q.pop_front();
q.push_front(i);
}
cout<<a[q.back()]<<" ";
s+=a[q.back()];
for(int i=k+1;i<=n;i++)
{
fin>>a[i];
while(!q.empty() && a[i]<=a[q.front()])
q.pop_front();
q.push_front(i);
if(!q.empty() && i-q.back()>k-1)
q.pop_back();
s+=a[q.back()],cout<<a[q.back()]<<" ";
}
fout<<s;
return 0;
}