trang chủ / bài tập / strrecon

Khôi phục xâu

Đề bài

Mô tả

Ivan có một xâu s gồm các chữ cái Latin thường, nhưng xâu này đã bị giấu mất. Ivan chỉ còn nhớ một số thông tin về s.

Cụ thể, Ivan nhớ n mẩu thông tin. Mẩu thứ i cho biết một xâu ti xuất hiện trong s tại đúng ki vị trí xi,1,xi,2,,xi,ki: nghĩa là với mỗi vị trí x trong danh sách, ta có s[xx+|ti|1]=ti (chỉ số tính từ 1).

Các mẩu thông tin đảm bảo không mâu thuẫn với nhau, nên luôn tồn tại ít nhất một xâu s thoả mãn tất cả. Trong tất cả các xâu s hợp lệ, hãy in ra xâu nhỏ nhất theo thứ tự từ điển. Độ dài của s được xác định là vị trí lớn nhất bị một thông tin nào đó chạm tới; các vị trí không bị ràng buộc được điền bằng chữ cái nhỏ nhất có thể.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n (số mẩu thông tin).
  • n dòng tiếp theo, dòng thứ i chứa: xâu ti, rồi số nguyên dương ki (số lần xuất hiện), rồi ki số nguyên dương xi,1<xi,2<<xi,ki là các vị trí bắt đầu.

Dữ liệu ra

In ra xâu nhỏ nhất theo thứ tự từ điển thoả mãn mọi thông tin Ivan nhớ.

Ràng buộc

  • 1n105
  • 1ki, tổng tất cả ki không vượt quá 106
  • Tổng độ dài các xâu ti không vượt quá 106
  • 1xi,j106
  • Các xi,j trong cùng một mẩu thông tin là phân biệt và tăng dần.
  • Dữ liệu đảm bảo tồn tại ít nhất một xâu s hợp lệ.

Ví dụ

Input Output Giải thích
3
ab 1 1
aba 1 3
ab 2 3 5
ababab "ab" tại vị trí 1, "aba" tại vị trí 3, "ab" tại vị trí 3 và 5. Ghép lại được "ababab".
3
a 4 1 3 5 7
ab 2 1 5
ca 1 4
abacaba "a" tại 1,3,5,7; "ab" tại 1,5; "ca" tại 4. Xâu ngắn nhất chứa đủ là "abacaba".
1
a 1 3
aaa "a" tại vị trí 3 buộc độ dài tối thiểu là 3; các vị trí 1, 2 chưa ràng buộc nên điền 'a'.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0