Điều hướng chính

Nhắn tin NQ Coding

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Bài tập pharuoubfs

Pha rượu

Dễ Quy hoạch độngDFS BFS

  • 100 Điểm
  • 1.0s Thời gian
  • 256M Bộ nhớ
  • 50% Tỉ lệ AC
  • 1 Số AC

Biết Tấm dốt Hóa, mẹ con Cám lại nghĩ ra một trò mới để chơi khó. Trong hầm rượu có \(n\) loại rượu đánh số từ \(1\) tới \(n\), mỗi loại rượu có số chai không hạn chế, mỗi chai chứa đúng \(1\) lít (\(1000\) ml). Mỗi chai rượu loại \(i\) có nồng độ cồn là \(a_i\), tương ứng với số ml cồn trong chai.

Nhiệm vụ của Tấm là lấy ra một số ít nhất các chai rượu (ít nhất \(1\) chai) trộn vào nhau để được một hỗn hợp có nồng độ cồn đúng bằng \(q\), tức là nếu lấy \(c_i\) chai loại \(i\) thì phải có

\[\sum_{i=1}^{n} c_i \cdot a_i = q \cdot \sum_{i=1}^{n} c_i, \qquad \sum_{i=1}^{n} c_i \ge 1.\]

Hãy giúp Tấm thực hiện yêu cầu đó.

Input

  • Dòng \(1\) chứa hai số nguyên \(n, q\) (\(1 \le n \le 1000\); \(0 \le q \le 100\)).
  • Dòng \(2\) chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(0 \le a_i \le 100\)).

Output

  • Dòng \(1\) ghi YES hay NO tùy theo có phương án thực hiện được yêu cầu hay không.
  • Nếu đáp án là YES, dòng \(2\) in ra \(n\) số \(c_1, c_2, \ldots, c_n\) — số chai cần dùng của mỗi loại, với tổng số chai \(c_1 + c_2 + \cdots + c_n\) nhỏ nhất có thể.

Quy tắc chọn đáp án duy nhất: nếu có nhiều phương án cùng dùng ít chai nhất, hãy chọn phương án có số chai loại \(1\) nhiều nhất; nếu vẫn còn nhiều phương án thì chọn phương án có số chai loại \(2\) nhiều nhất, và cứ tiếp tục như vậy (tức là trong các phương án tối ưu, chọn dãy \((c_1, c_2, \ldots, c_n)\) lớn nhất theo thứ tự từ điển).

Sample Input 1

4 6
1 37 1 1

Sample Output 1

YES
31 5 0 0

Sample Input 2

4 24
17 46 17 17

Sample Output 2

YES
22 7 0 0

Sample Input 3

7 87
24 95 69 80 38 38 24

Sample Output 3

YES
0 4 1 2 0 0 0

Notes

Ở ví dụ \(1\): trộn \(31\) chai loại \(1\) và \(5\) chai loại \(2\) được \(31 \cdot 1 + 5 \cdot 37 = 216\) ml cồn trong \(36\) lít, nồng độ \(216 / 36 = 6\). Các phương án 0 5 31 0 hay 0 5 0 31 cũng dùng \(36\) chai nhưng có số chai loại \(1\) ít hơn nên không được chọn.

Bình luận

Chưa có bình luận nào.