[DHBB17 - CBG - 10] Bài 3: Bờm và Phú ông

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong 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

Sau khi Bờm đáp ứng hết các điều kiện mà Phú Ông đưa ra, Bờm lại thắng cuộc một lần nữa. Vì phần thưởng lần này quá lớn nên Bờm vội chạy về và lục soát khắp nhà mới tìm được một cái ba lô chứa được trọng lượng không vượt quá ~S~. Bờm vội vã mang đến nhà Phú Ông nhận thưởng. Phú Ông có ~N~ thỏi vàng có trọng lượng lần lượt là ~a_1, a_2, \dots, a_N~ để cho Bờm lựa chọn. Bờm rất cẩn thận lựa chọn các thỏi vàng cho vào ba lô sao cho tổng trọng lượng lớn nhất mà ba lô không bị rách (ba lô sẽ bị rách khi chứa trọng lượng lớn hơn ~S~ và khi đó Bờm phải đền gấp đôi số vàng lấy được).

Yêu cầu: Hãy tính toán giúp Bờm có thể chọn những thỏi vàng để tổng trọng lượng lớn nhất và có bao nhiêu cách lựa chọn như vậy?

Input

  • Dòng 1 ghi số ~N~ và ~S~ (~0 < N \le 1000~; ~0 < S \le 50000~; ~N \times S < 5 \times 10^6~).
  • Dòng 2 ghi ~N~ số ~a_i~ (~0 < a_i \le 1000~).

Output

  • Nếu có phương án:
    • Dòng 1 ghi tổng trọng lượng lớn nhất có thể.
    • Dòng 2 ghi số cách Bờm có thể lựa chọn để đạt tổng trọng lượng lớn nhất (hai cách chọn khác nhau nếu khác nhau ít nhất một thỏi vàng) lấy modul ~10^9 + 7~.
  • Ngược lại nếu ba lô của Bờm quá tồi nên không đựng được bất cứ một thỏi vàng nào thì ghi duy nhất số 0.

Sample Input 1

3 7
4 6 2

Sample Output 1

6
2

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.