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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0