BINS - Binary Instructions
Dữ liệu vào: standard input
Dữ liệu ra: standard output
Giới hạn thời gian: 1.0 giây
Giới hạn bộ nhớ: 128 megabyte
Đăng bởi: LovelyLife

Chương trình máy tính được biên dịch thành một chuỗi các bit (0 và 1) có độ dài L. Tùy theo kiến trúc của từng loại máy tính mà mỗi lệnh (instruction) có độ dài (gồm n bit) khác nhau.

Để kiểm tra một chương trình có bị nhiễm mã độc hay không, thông thường người ta kiểm tra trong chương trình đó có biểu hiện gây hại thông qua dãy các lệnh trong chương trình, bằng cách đối chiếu các lệnh trong chương trình với tập các dãy lệnh "độc" (mã độc) có sẵn trong thư viện. Do đó, yêu cầu đặt ra là: Cho trước một tập các mã độc và một chương trình, hãy kiểm tra xem chương trình này có bị dính mã độc hay không?

Dữ liệu vào: Số n (0< n <= 64) - độ dài mỗi lệnh, một chương trình gồm L (0 < L <= 2^10) bit và một tập gồm M mã độc (gồm dãy các lệnh liên tiếp nhau); mỗi mã độc được đặt trên 1 dòng. Hãy xác định chương trình có bị dính mã độc hay không?

Dữ liệu ra: Trả lời YES nếu chương trình bị dính mã độc. Ngược lại trả lời NO.

Ví dụ

  • input
    4 10101100101110100011
    4
    110010100011
    101011001010
    10100011
    10111110
    output
    YES

Với độ dài lệnh n = 4 và chương trình 1010 1100 1011 1010 0011. Tập mã độc gồm 1100 1010 0011, 1010 1100 1010, 1010 0011 và 1011 1110. Chương trình này dính mã độc thứ 1, 2 và 3, nhưng không dính mã độc thứ 4. Tuy nhiên chương trình vẫn bị dính mã độc.

Back to Top