Bài tập ngày 23/8
[TNG23] TỔNG BÍT
Nộp bàiPoint: 5
Hãy đếm số bit 1 trong biểu diễn nhị phân của các số nguyên từ 1 đến n.
Ví dụ với n = 6 thì các biểu diễn nhị phân của 1…6 là 1, 10, 11, 100, 101 và 110, do đó có tổng cộng 9 bit 1.
Ràng buộc:
- Có 50% số test của bài có n ≤ 1000.
- Có 50% số test còn lại của bài có n ≤ 10^12.
Ví dụ:
Input
6
Output
9
[TNG23] SỐ ĐẶC BIỆT
Nộp bàiPoint: 5
Số đặc biệt là số nguyên có đúng 4 ước nguyên dương.
Yêu cầu: Cho trước số nguyên dương n, hãy tìm số đặc biệt bé nhất không nhỏ hơn n.
Ràng buộc:
- Có 40% số test của bài có n ≤ 1000.
- Có 60% số test còn lại của bài có n ≤ 10^9.
Ví dụ
Input
5
Output
6
Ví dụ 2
Input
15
Output
15
PHỤC HỒI DÃY SỐ
Nộp bàiPoint: 5
Bạn sắp xếp các số từ ~1, 2, ..., n~ một cách tùy ý vào ~n~ vị trí và được dãy số ~P~ (hay còn gọi ~P~ là một hoán vị của các số ~1, 2, ..., n~). Quan sát dãy số ~P~, lần lượt với mỗi giá trị ~i~ ~(i = 1, 2, ..., n)~ An thực hiện ghi lại số các số lớn hơn ~i~ và đứng bên trái ~i~ trong dãy ~P~ và thu được dãy ~T~ gồm ~n~ số, An đưa Thắng dãy ~T~ và yêu cầu phục hồi dãy ~P~ ban đầu từ dãy ~T~ này.
Em hãy lập trình giúp Thắng giải quyết bài toán này.
Dữ liệu vào
Dòng đầu chứa số tự nhiên ~N~ ~(1 \le N \le 100)~.
Dòng thứ hai chứa ~N~ số tự nhiên mô tả dãy ~T~, các số cách nhau một dấu cách.
Dữ liệu ra
Ghi ra một dãy gồm ~N~ số mô tả dãy ~P~ ban đầu, các số ghi cách nhau một dấu cách.
Ví dụ:
Input
4
2 1 0 0
Output
3 2 1 4
Giải thích
- Số ~1~ có ~2~ số lớn hơn bên trái ~(3, 4)~.
- Số ~2~ có ~1~ số lớn hơn bên trái ~(3)~.
- Số ~3~ không có số lớn hơn bên trái.
- Số ~4~ không có số lớn hơn bên trái.
Ví dụ 2:
Input
6
5 1 0 1 1 0
Output
3 2 6 4 5 1
Giải thích
- Số ~1~ có ~5~ số lớn hơn bên trái ~(3, 2, 6, 4, 5)~.
- Số ~2~ có ~1~ số lớn hơn bên trái ~(3)~.
- Số ~3~ không có số lớn hơn bên trái.
- Số ~4~ có ~1~ số lớn hơn bên trái ~(6)~.
- Số ~5~ có ~1~ số lớn hơn bên trái ~(6)~.
- Số ~6~ không có số lớn hơn bên trái