Điểm:
300
Thời gian:
0.5s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho một dãy số nguyên \(A\) gồm \(n\) phần tử. Ta định nghĩa mảng \(B\) gồm \(n\) phần tử, với \(B[i]\) được tính như sau:
- Bằng \(A[j]\) là phần tử gần nhất bên trái \(A[i]\) và nhỏ hơn hoặc bằng \(A[i]\) (với \(1\le j<i, j\) lớn nhất có thể, \(A[j] \le A[i]\)).
- Bằng \(0\) khi không tồn tại \(A[j]\) như trên.
Ví dụ: Với \(A = {2,5,3,6}\) thì \(B = {0,2,2,3}\)
\(A[1]\) là số đầu tiên trong dãy \(⇒ B[1] = 0\)
Số gần nhất bên trái nhỏ hơn hoặc bằng \(5\) là \(2\) \(⇒ B[2] = 2\)
Số gần nhất bên trái nhỏ hơn hoặc bằng \(3\) là \(2\) \(⇒ B[3] = 2\)
Số gần nhất bên trái nhỏ hơn hoặc bằng \(6\) là \(3\) \(⇒ B[4] = 3\)
Yêu cầu: Cho mảng \(A\), hãy tìm và in ra mảng \(B\) thõa mãn điều kiện trên.
Input
- Dòng đầu tiên là số nguyên \(n\).
- Dòng thứ hai gồm \(n\) số nguyên là các phần tử của mảng \(A\).
Output
- Gồm \(n\) số nguyên là các phần tử của mảng \(B\).
Constraints
- \(1\leq n\leq 10^5\)
- \(1\leq A[i]\leq 10^9\)
Scoring
- Subtasks \(1\) (\(33,33\%\) số điểm): \(n \le 10^4\)
- Subtasks \(2\) (\(66,67\%\) số điểm): Không có ràng buộc gì thêm
Example
Test 1
Input
4
2 5 3 6
Output
0 2 2 3
Bình luận
yêu cầu admin thêm thời gian
bài này làm như nào để ăn được 2 test cuối vậy ạ?(đã ac)
dùng scanf và printf thì wrong answer còn dùng cin cout thì ac:) lạ ta