Pagini recente » Arhiva de probleme | Cod sursa (job #536429) | Cod sursa (job #658575) | Statistici Zongor Lajos (rhovinion) | Cod sursa (job #2206540)
#include <fstream>
using namespace std;
ifstream fin ("secventa.in");
ofstream fout ("secventa.out");
int n, k, kk, v[500004], d[500004], p, u, maxim = -1, st, dr;
int main()
{
fin>>n>>kk;
for(int i = 1; i <= n; i++){
fin>>v[i];
}
for(int k = kk; k <= n; k++){
d[1] = 1; p = 1; u = 1;
for(int i = 2; i <= n; i++){
while (p <= u && v[i] < v[d[u]]){
u--;
}
u++;
d[u] = i;
if(i - d[p] == k){
p++;
}
if(i >= k){
if(maxim < v[d[p]]){
maxim = v[d[p]];
st = d[p];
dr = d[u];
}
}
}
}
for(int i = st; i <= dr; i++){
fout<<v[i]<<" ";
}
return 0;
}