Ghép xâu

View as PDF

Submit solution

Points: 0.25 (partial)
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Problem type
Allowed languages
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

An tìm được trong đống giấy tờ lộn xộn của Bình một băng giấy dài ghi một xâu ~n~ ký tự. Vừa mới học ở trường bài toán tìm ước số, An nhận thấy ngay ~m~ là một ước của ~n~ và lấy kéo cắt băng giấy thành các phần bằng nhau, mỗi phần chứa đúng ~k~ ký tự. Đi học về, thấy em mình đang nghịch các mẩu giấy cắt được, Bình điếng người, đứng chết lặng. Phải tốn biết bao nhiêu công sức Bình mới tìm được xâu thích hợp làm test cho một bài tập ở giờ semina tin học và cũng phải tốn không ít công sức mới viết được nó ra giấy để trình bày. Bình bắt An phải gián các mẩu giấy lại thành xâu ban đầu, nếu không tối nay sẽ không cho mượn máy tính để chơi.

Các mẩu giấy được đánh số từ ~1~ đến ~m~.

Hãy chỉ ra trình tự lắp ghép các mẩu giấy để được xâu ban đầu.

Dữ liệu:

  • Dòng đầu tiên chứa ~2~ số nguyên ~n~ và ~m (1 \le m \le n \le 10^6)~;
  • Dòng thứ hai chứa xâu ban đầu, độ dài không quá ~10^6~;
  • Mỗi dòng trong ~m~ dòng tiếp theo chứa xâu độ dài ~k = n/m~.

Kết quả:

  • Đưa ra trên một dòng m số nguyên xác định trình tự lắp ghép các mẩu giấy. Nếu tồn tại nhiều cách lắp ghép thì đưa ra cách có thứ tự từ điển nhỏ nhất.

Ví dụ:

Sample Input
12 3
cabacaqwerty
erty
caba
caqw
Sample Output
2 3 1

Comments

Please read the guidelines before commenting.


There are no comments at the moment.