Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

HAM12 - VOI 2012 Khoảng cách Hamming




Các phân tử trong tế bào sinh học được cấu tạo từ 4 loại nuclêôtit cơ bản ký hiệu bởi các chữ cái A, X, T, G. Mỗi gen di truyền được cấu tạo thành bởi một chuỗi các nuclêôtit với độ dài được tính bằng số lượng nuclêôtit. Ví dụ, AXXTTGAT là một gen có độ dài 8.

Trong một chuyến đi khảo sát, Giáo sư Altein phát hiện ra một gen lạ gồm n nuclêôtit được xếp trên một vòng tròn. Ngay lập tức, Giáo sư Altein dự định tiến hành so sánh gen lạ này với một số gen mẫu đang lưu trữ nhằm tìm hiểu xem mẫu gen này có gần gũi với loại gen mẫu nào đã được biết. Trong sinh học để đo độ khác biệt giữa hai mẫu gen người ta thường tính khoảng cách Hamming giữa chúng. Khoảng cách Hamming giữa hai gen cùng độ dài được định nghĩa là số lượng vị trí mà tại đó hai gen chứa các nuclêôtit khác nhau. Ví dụ, hai gen AGGTT và TGATT có khoảng cách Hamming bằng 2 do 2 nuclêôtit ở các vị trí 1 và 3 của chúng là khác nhau. Do các gen mẫu được sử dụng đều có độ dài m (m ≤ n) và có cấu trúc thẳng, trong khi gen lạ lại có độ dài n và có cấu trúc vòng nên Giáo sư Altein đã định nghĩa khoảng cách Hamming giữa một gen mẫu và gen lạ là số nhỏ nhất trong số các khoảng cách Hamming giữa gen mẫu và những đoạn gen gồm m nuclêôtit liên tiếp theo chiều kim đồng hồ trong gen lạ.

Yêu cầu: Cho k gen mẫu, hãy xác định gen mẫu với khoảng cách Hamming đến gen lạ là nhỏ nhất và đưa ra khoảng cách tìm được.

Ràng buộc: 50% số tests ứng với 50% số điểm của bài có n ≤ 100.

Input

  • Dòng thứ nhất chứa ba số nguyên dương n, m, k (m ≤ n ≤ 1000; k ≤ 100).
  • Dòng thứ hai chứa xâu độ dài n là dãy các nuclêôtit của gen lạ được liệt kê theo chiều kim đồng hồ bắt đầu từ một vị trí nào đó.
  • Dòng thứ i trong số k dòng tiếp theo chứa xâu độ dài m biểu diễn gen mẫu thứ i.

Output

Ghi ra một số nguyên là khoảng cách Hamming nhỏ nhất tìm được.

Example

Input:
7 3 2
GTAAXXT
GAT
TTT Output: 1

Được gửi lên bởi:VOJ Team
Ngày:2012-01-18
Thời gian chạy:0.400s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:Tất cả ngoại trừ: ASM64 GOSU PERL6 PYPY RUST SED
Nguồn bài:VOI 2012

hide comments
2016-12-11 16:38:11
dùng xâu và đưa phần xử lý vào CT con là 95->100. Sao vậy ta?
2016-08-25 20:17:56
trâu cũng AC
2016-01-04 15:08:40
THAM KHẢO TẠI https://traitaodo.wordpress.com/2016/01/04/voi-2012-khoang-cach-hamming-ham12/
2015-12-13 19:43:45 ChienTran
Bài này bộ test có vẻ không đúng rồi. Vì có thuật toán tìm dãy con chung lớn nhất trong O(m + n). AC trên đây nhưng về bộ chấm xác định ăn cám
2015-12-05 11:59:35 ChienTran
chắc có sự nhầm lần gì đó. O(nmk) + nhánh cận 1 dòng 100đ
2015-08-30 17:19:06 Nguyễn Vĩnh Thịnh
o(nmk) sao có 85 T.T
2015-07-20 13:21:52 Do Hong Huan
Đù, 1 phát AC, đúng là O(n*m*k) là AC.
2015-07-18 13:05:30 _sanghk11_
10 ^ 8 mak AC đc hả ta ?????? :v
2015-07-18 13:05:30 _sanghk11_
10 ^ 8 mak AC đc hả ta ?????? :v
2014-12-26 11:31:44 Trần Anh Tú
n*m*k + cận time 2s AC cũng có gì lạ đâu?
© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.