Mai intai trebuie sa te autentifici.
Cod sursa(job #3189772)
Utilizator | Data | 6 ianuarie 2024 14:49:41 | |
---|---|---|---|
Problema | Secventa | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva de probleme | Marime | 0.81 kb |
#include <fstream>
#include <deque>
#include <climits>
#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] << " ";
}
}