Pagini recente » Cod sursa (job #1189549) | Cod sursa (job #367925) | Cod sursa (job #1769941) | Cod sursa (job #199470) | Cod sursa (job #2832489)
///#include <iostream>
#include <fstream>
#include <deque>
using namespace std;
const int SIZE = 5e5+10;
ifstream cin("secventa.in");
ofstream cout("secventa.out");
deque <int> dq;
int v[SIZE];
int n, k, maxind, maxscore;
void push2dq(int ind)
{
while(!dq.empty() && v[dq.back()]>=v[ind])
dq.pop_back();
dq.push_back(ind);
}
int main()
{
cin>>n>>k;
for(int i=1; i<=n; i++) cin>>v[i];
for(int i=1; i<=k; i++) push2dq(i);
maxscore = dq.front();
maxind = k;
for(int i=k+1; i<=n; i++) {
while(!dq.empty() && dq.front()<=i-k) dq.pop_front();
push2dq(i);
if(maxscore<v[dq.front()])
maxscore = v[dq.front()], maxind = i;
}
for(int i=maxind-k+1; i<=maxind; i++)
cout<<v[i]<<' ';
return 0;
}