Dãy Chữ Số Ghép Khối
Đề bài
Mô tả
Xét một dãy vô hạn được tạo bằng cách ghép liên tiếp các "khối". Khối thứ là chuỗi thu được khi viết liền nhau tất cả các số nguyên dương từ đến . Cụ thể:
- Khối thứ nhất: viết các số từ đến , tức là "1".
- Khối thứ hai: viết các số từ đến , tức là "12".
- Khối thứ ba: viết các số từ đến , tức là "123".
- …
- Khối thứ : viết các số từ đến .
Ghép tất cả các khối lại theo thứ tự, ta được dãy chữ số vô hạn:
chữ số đầu tiên của dãy là:
Các phần tử của dãy được đánh số bắt đầu từ . Ví dụ, phần tử thứ là chữ số , phần tử thứ là , phần tử thứ là , phần tử thứ là , và phần tử thứ là .
Bạn cần trả lời truy vấn độc lập. Trong truy vấn thứ , cho một số nguyên ; hãy xác định chữ số nằm ở vị trí thứ của dãy.
Dữ liệu vào
- Dòng đầu chứa một số nguyên — số lượng truy vấn.
- Mỗi dòng trong dòng tiếp theo chứa một số nguyên — mô tả truy vấn tương ứng.
Dữ liệu ra
In ra dòng. Dòng thứ chứa một chữ số () là phần tử ở vị trí thứ của dãy.
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 1 3 20 38 56 |
1 2 5 2 0 |
Các vị trí được lấy từ dãy mẫu ở đề bài. Vị trí rơi vào phần "…910" của khối thứ , cho chữ số . |
| 4 2132 506 999999999 1000000000 |
8 2 9 8 |
Bốn truy vấn với các vị trí lớn. Cần tính nhanh mà không dựng dãy tường minh. |
Bình luận