Pagini recente » Cod sursa (job #2317672) | Cod sursa (job #907614) | Cod sursa (job #3181180) | Clasament just4fun | Cod sursa (job #3189768)
#include <fstream>
#include <deque>
#define N 500000
std::ifstream fin("secventa.in");
std::ofstream fout("secventa.out");
std::deque<int> D;
int arr[N];
int main(){
int n, k;
fin >> n >> k;
for(int i = 1; i <= n; i++){
fin >> arr[i];
}
int mx = INT_MIN;
int left = 1, right = 1;
for(int i = 1; i <= n; i++){
if(!D.empty() && D.front() == i - k)
D.pop_front();
while(!D.empty() && arr[i] < arr[D.back()]){
D.pop_back();
}
D.push_back(i);
if(i >= k ){
if(mx < arr[D.front()]){
mx = arr[D.front()];
left = D.front(), right = i;
}
}
}
for(int i = left; i <= right; i++){
fout << arr[i] << " ";
}
}