Chọn Đội tuyển HSGQG TPHCM 2025 - Bản đồ cổ
Xem dạng PDFTrong một bảo tàng lịch sử nổi tiếng, người quản lí đang được giao nhiệm vụ bảo quản một bản đồ cổ vốn đã trải qua hàng trăm năm. Theo thời gian, để tiện lưu trữ, bản đồ đã được gấp lại nhiều lần tại những nếp gấp khác nhau. Bản đồ có ~N+1~ nếp gấp cách đều nhau được đánh số từ ~0~ đến ~N~ từ mép trái qua mép phải. Mỗi lần gấp tại nếp gấp vị trí ~X~, phần bản đồ ngắn hơn sẽ được gấp chồng lên phần còn lại. Trường hợp hai phần bằng nhau thì gấp phần bản đồ bên trái lên phần bên phải. Sau ~K~ lần gấp như thế, tại cùng một vị trí có thể có nhiều nếp gấp. Giả sử độ dày của bản đồ sau các lần gấp tăng không đáng kể.
Một ngày nọ, khi bảo tàng tổ chức triển lãm tấm bản đồ cổ, ông quản lí đặt tấm bản đồ đã được gấp trên mặt bàn để kiểm tra. Sau khi quan sát, ông muốn biết số nếp gấp chồng lên nhau tại những vị trí nếp gấp tiếp xúc với mặt bàn.
Yêu cầu: Hãy viết chương trình giúp người quản lí trả lời câu hỏi trên.
Input
Vào từ file BANDO.INP:
Dòng 1: 2 số nguyên ~N~ và ~K~.
Dòng 2: ~K~ số nguyên là các vị trí nếp gấp (~0 \le x_i < N + 1~ với ~i~ = ~1~, ~2~, ~3~, ... , ~K~).
Output
Ghi ra file BANDO.OUT:
Dòng 1: Số lượng vị trí nếp gấp tiếp xúc với mặt bàn.
Dòng 2: Số lượng nếp gấp tại vị trí đó theo thứ tự từ trái sang phải.
Scoring
| Subtask | Điểm | Giới hạn |
|---|---|---|
| ~1~ | ~30\%~ | ~N ≤ 10^3, K ≤ 5~. |
| ~2~ | ~70\%~ | ~N ≤ 10^6, K ≤ 10^6~. |
Sample Input 1
7 2
3 2
Sample Output 1
4
2 3 2 1
Notes

Minh hoạ cho test 1.

Bình luận