Kiểm tra tham lam tối ưu
Xem dưới dạng PDF
Gửi bài giải
Điểm:
25
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Tèo vừa khám phá ra một kho hàng bí mật của bác Ba. Trong kho có \(N\) món hàng, món thứ \(i\) có giá trị \(w_i\). Tuy nhiên, không phải tập hợp món hàng nào cũng có thể lấy ra cùng lúc — có một quy tắc bí ẩn về tính tương thích giữa các món hàng.
Tèo quyết định dùng một mẹo đơn giản: em sắp xếp các món hàng theo giá trị giảm dần, rồi lần lượt lấy từng món, nếu món đó vẫn tương thích với các món đã lấy thì bỏ vào ba lô. Bạn hãy kiểm tra xem với danh sách các bộ tương thích đã biết, cách chọn của Tèo có cho ra tổng giá trị lớn nhất có thể hay không nhé!
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên \(N\) và \(M\) (\(1 \le N \le 12\), \(1 \le M \le 2^N\)).
- Dòng thứ hai chứa \(N\) số nguyên \(w_1, w_2, \dots, w_N\) (\(1 \le w_i \le 100\)).
- \(M\) dòng tiếp theo, mỗi dòng là một xâu nhị phân độ dài \(N\) gồm các ký tự \(0\)/\(1\), mô tả một bộ tương thích (ký tự thứ \(i\) là \(1\) nếu món hàng \(i\) được chọn trong bộ đó).
Kết quả ra
- In ra YES nếu cách chọn của Tèo cho tổng giá trị lớn nhất, ngược lại in ra NO.
Ví dụ
Input
3 4
10 7 4
000
100
010
110
Output
YES
Subtask
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | \(\%25\) | \(N \le 6\) |
| 2 | \(\%35\) | \(N \le 9\) |
| 3 | \(\%40\) | \(N \le 12\) |
Nhận xét