Min Max Array

Xem dạng PDF

Gửi bài giải


Điểm: 0,30 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Nguồn bài:
Stolen
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, Python

Cho một dãy a gồm n phần tử. Ta định nghĩa g(l,r)=min(a[i])(lir).

Tiếp đó, ta có f(k)=max(g(l,r))(rl+1=k), hay f(k) là giá trị lớn nhất của các g(l,r) với mọi đoạn (l,r) có độ dài k.

Hãy lập trình tính các f(k) từ 1>n.

Input

  • Dòng đầu tiên gồm số nguyên dương n. (1n105).
  • Dòng sau gồm n số nguyên dương miêu tả dãy a. (1a[i]106 (1in)).

Output

  • In ra một dòng gồm n số miêu tả kết quả của f(k) từ 1>n.

Sample Test

Input:

Copy
10
1 2 3 4 5 4 3 2 1 6

Output:

Copy
6 4 4 3 3 2 2 1 1 1