HackDream Orange 02-F: Ghép chuỗi

Xem PDF

Nộp bài

Điểm: 100 (thành phần)
Thời gian: 1.0s
Python 2 3.0s
Bộ nhớ: 256M
Input: bàn phím
Output: màn hình

Tác giả:
Dạng bài

Cho ~n~ chuỗi ký tự có độ dài là ~n~. Ta có thể tạo ra một chuỗi ký tự có độ dài không vượt quá ~n~, từ ~n~ chuỗi ban đầu như sau:

  • Bước 1: Tạo ra một dãy ~A~ chứa ~k~ số nguyên dương tăng dần ~(k≤n)~, mỗi phần tử không vượt quá ~n~.
  • Bước 2: Tạo ra dãy ~B~ cũng chứa ~k~ số nguyên dương tăng dần, mỗi phần tử không vượt quá ~n~.
  • Bước 3: Chuỗi ký tự kết quả sẽ bao gồm ~k~ ký tự, được ghép bởi ký tự thứ ~a_1~ của chuỗi ~b_1~, ký tự thứ ~a_2~ của chuỗi ~b_2~, ..., ký tự thứ ~a_k~ của chuỗi ~b_k~.

Ví dụ:

  • Cho 4 chuỗi ký tự ~[abcd~, ~efgh~, ~ijkl~, ~mnop]~. Chọn ~k=3~.
  • Tạo ra 2 dãy số ~A~ và ~B~ lần lượt là ~[1, 2, 4]~ và ~[2, 3, 4]~.
  • Chuỗi sẽ được tạo ra bằng cách ghép ký tự thứ nhất của chuỗi 2 ~(e)~, ký tự thứ hai của chuỗi 3 ~(j)~ và ký tự thứ tư của chuỗi 4 ~(p)~ ~-> ejp~.

Yêu cầu

Cho ~n~ chuỗi ký tự có độ dài ~n~ chỉ bao gồm các chữ cái tiếng Anh in thường và chuỗi ký tự ~s~. Hỏi có thể tạo ra được chuỗi ~s~ bằng phương pháp đã nêu hay không.

Input

  • Dòng đầu tiên chứa số nguyên dương ~n~ ~(1≤n≤200)~.
  • ~n~ dòng sau, mỗi dòng chứa 1 xâu ký tự có độ dài ~n~ chỉ chứa chữ cái tiếng Anh in thường.
  • Dòng cuối cùng là chuỗi ký tự ~s~ có độ dài không vượt quá ~n~.

Output

Nếu không thể tạo được chuỗi ~s~, in ra ~-1~. Ngược lại, in ra kết quả trên 2 dòng:

  • Dòng thứ nhất là dãy ~A~, các phần tử cách nhau một dấu cách.
  • Dòng thứ hai là dãy ~B~, các phần tử cách nhau một dấu cách.

Nếu có nhiều cách chọn dãy ~A~ và ~B~ để tạo ra chuỗi ~s~, in ra lựa chọn với dãy ~B~ có thứ tự từ điển nhỏ nhất. Nếu có nhiều lựa chọn có cùng dãy ~B~ với thứ tự từ điển nhỏ nhất, in ra lựa chọn có dãy ~A~ tương ứng có thứ tự từ điển nhỏ nhất.

Sample Input

4
abcd
dabc
dcba
badc
abc

Sample Output

1 3 4
1 2 4

Giải thích

Chọn ký tự thứ nhất của dãy 1, ký tự thứ 3 của dãy 2 và ký tự thứ tư của dãy 4 để tạo thành chuỗi ~abc~.

Subtask

  • Có 50% số test ứng với 50% số điểm có ~1≤n≤20~;
  • 50% số test còn lại tương ứng với 50% số điểm không có giới hạn gì thêm.

Bình luận đầu tiên

Bình luận

Không có bình luận nào.