Xoá dòng

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1500 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho một bảng hình chữ nhật có \(N\) dòng và \(M\) cột gồm các chữ cái in thường từ a đến z. Bảng này có tính chất: ở mỗi cột, khi ghép các kí tự từ trên xuống dưới sẽ thu được một xâu đại diện và trong bảng các xâu đại diện là đôi một khác nhau.

Yêu cầu: hãy tìm cách xoá nhiều nhất các dòng (lần lượt từ dòng đầu tiên xuống dưới) của bảng để thu được một bảng mới vẫn đảm bảo tính chất trên. (Chỉ được xoá tối đa \(N - 1\) dòng)

Input

  • Dòng đầu tiên chứa hai số nguyên \(N\)\(M\) cách nhau một dấu cách.
  • \(N\) dòng sau, mỗi dòng chứa một xâu có độ dài \(M\).

Output

  • Ghi ra một số duy nhất là kết quả của bài toán.

Example

Test 1

Input
5 4
qwpt
abcf
bvoa
abka
bbhb
Output
2
Note

Xoá tối đa 2 dòng đầu. Nếu xoá cả dòng thứ 3 thì cột đầu tiên và cột cuối cùng sẽ giống nhau (không thoả mãn tính chất của bảng).

Scoring

  • \(40\%\) số test tương ứng với số điểm có \(N, M \le 100\).
  • \(30\%\) số test khác tương ứng với số điểm có \(N, M \le 500\).
  • \(30\%\) số test còn lại tương ứng với số điểm có \(N, M \le 5000\).

Bình luận (1)

Mới nhất
Tải bình luận...

Kỳ thi: