DHBB 2026 - DX36 - 10 - Phần tử quan trọng
Xem dạng PDFTrong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài
Cho một tập hợp số tự nhiên ~A=\{a_1,a_2,\dots,a_n\}~ gồm ~n~ phần tử, các phần tử có thể đôi một bằng nhau.
Ta nói rằng tập ~A~ có thể dựng được số ~S~ khi và chỉ khi tồn tại một hoặc một vài phần tử trong ~A~ sao cho tổng của chúng bằng ~S~. Nói cách khác, tập ~A~ có thể dựng được số ~S~ khi và chỉ khi tồn tại một dãy chỉ số ~1 \le i_1<i_2<\dots<i_k \le n~ sao cho ~a_{i_1}+a_{i_2}+\dots+a_{i_k}=S~.</p>
Nhận thấy rằng, có thể có các phần tử trong tập hợp ~A~ có tính chất quan trọng trong việc dựng nên số ~S~, nghĩa là khi loại bỏ phần tử đó ra khỏi tập ~A~, tập hợp thu được không thể dựng được số ~S~. Ta gọi một phần tử ~x \in A~ là quan trọng khi và chỉ khi:
~A~ dựng được số ~S~; và
~A-\{x\}~ không dựng được số ~S~.
Với mỗi phần tử ~a_i~ ~(1 \le i \le n)~, bạn hãy xác định xem nó có phải là phần tử quan trọng hay không.
Input
Dòng ~1~: Gồm hai số nguyên dương ~N,S~ ~(1 \le N \le 3000)~.
Dòng ~2~: Gồm ~N~ số nguyên dương mô tả tập hợp ~A~ ~(1 \le a_i \le S \le 3000)~.
Output
Gồm ~n~ dòng, mỗi dòng thứ ~i~ là YES (nếu ~a_i~ là phần tử quan trọng) hoặc NO (nếu ~a_i~ không là phần tử quan trọng).
Scoring
| Subtask | Điểm | Ràng buộc |
|---|---|---|
| 1 | ~28\%~ | ~N \le 15~ |
| 2 | ~32\%~ | ~N \le 100~ |
| 3 | ~40\%~ | Không có ràng buộc gì thêm |
Sample Input 1
4 10
4 5 6 6
Sample Output 1
YES
NO
NO
NO
Sample Input 2
9 40
1 2 3 4 5 6 7 8 9
Sample Output 2
NO
NO
NO
NO
NO
YES
YES
YES
YES
Notes
Từ các số đã cho, chỉ có thể dựng số ~10~ từ ~4~ và ~6~. Vì ~a_3=a_4=6~, ta có thể loại số này để lấy số kia. Nói cách khác, vì ~a_1+a_3=a_1+a_4=10~ nên chỉ có ~a_1~ là phần tử quan trọng.
Bình luận