DHBB 2026 - DX35 - 11 - Cỗ máy thời gian
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Trong một tương lai xa, nhà du hành thời gian Chronos phát hiện ra một cỗ máy thời gian cổ đại được vận hành bằng cách giải mã các xâu ký tự. Mỗi xâu ký tự là một mã thời gian ~s_1~, được viết bằng các chữ cái Latin in thường, và cỗ máy sẽ tạo ra một dãy các xâu ~s_1, s_2, \dots, s_n~ dựa trên quy tắc đặc biệt: để tạo xâu ~s_i~, một ký tự sẽ được xóa khỏi xâu ~s_{i-1}~ sao cho xâu ~s_i~ là nhỏ nhất về mặt từ điển (theo thứ tự từ điển, xâu ~a~ nhỏ hơn xâu ~b~ nếu ~a~ là tiền tố của ~b~ và ~a \ne b~, hoặc tồn tại chỉ số ~i~ sao cho ~a_i < b_i~ và với mọi ~j < i~, ~a_j = b_j~)
Ví dụ, nếu mã thời gian ban đầu ~s_1 =~ kanu, cỗ máy sẽ tạo ra ~s_2 =~ anu, rồi ~s_3 =~ an, và cuối cùng ~s_4 =~ a.
Sau đó, cỗ máy nối tất cả các xâu lại thành một mã tổng ~S = s_1 + s_2 + \dots + s_n~. Để kích hoạt cỗ máy và du hành đến đúng mốc thời gian, Chronos cần tìm ký tự ở vị trí ~k~ trong mã tổng ~S~ (tức là ký tự ~S_{pos}~).
Hãy giúp Chronos giải mã và tìm ký tự cần thiết để khởi động cỗ máy thời gian!
Input
Dòng đầu tiên chứa số nguyên ~t~ ~(1 \le t \le 5)~ - số lượng mã thời gian mà Chronos cần giải mã.
Mỗi mã thời gian gồm hai dòng:
Dòng đầu tiên chứa xâu ~s_1~ ~(1 \le \lvert s_1 \rvert \le 10^6)~, gồm các chữ cái Latin in thường - mã thời gian ban đầu.
Dòng thứ hai chứa số nguyên ~k~ ~(1 \le k \le \lvert s_1 \rvert \cdot (\lvert s_1 \rvert + 1)/2)~, là vị trí kí tự cần tìm trong mã tổng.
Output
- Gồm ~t~ dòng: mỗi dòng ghi ~1~ ký tự tìm được theo yêu cầu bài toán với mã thời gian tương ứng của dữ liệu vào.
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~40\%~ | ~n \le 1000~ |
| 2 | ~30\%~ | ~s_{1,i} \le s_{1,i+1}~ với ~1 \le i \le \lvert s_1 \rvert - 1~ |
| 3 | ~30\%~ | Không có giới hạn gì thêm |
Sample Input 1
3
yeu
6
kanu
9
vl
3
Sample Output 1
e
n
l
Bình luận