You are on page 1of 20

1.

DPKNSHE - HEO ĐẤT


     Các cô cậu nhóc thường được lì xì tiền vào dịp tết. Sắn cũng vậy, mỗi dịp tết khi
được lì xì tiền Sắn thường cho vào heo đất của mình để thực hiện các kế hoạch nhỏ.
     Nhưng có một vấn đề lớn với heo đất. Không thể xác định được bên trong có bao
nhiêu tiền. Vì vậy có thể đập con lợn thành từng mảnh chỉ để biết rằng có bao nhiêu
tiền. Rõ ràng, Sắn muốn tránh tình trạng khó chịu này. Sắn chỉ muốn đập heo đất khi
đến hạn. Khả năng duy nhất là cân con heo đất và thử đoán xem có bao nhiêu đồng xu
bên trong.
     Giả sử rằng chúng ta có thể xác định chính xác trọng lượng của con lợn và chúng
ta biết trọng lượng của tất cả các đồng tiền xu. Sắn muốn biết tổng số tiền tối thiểu có
thể có trong con heo đất này là bao nhiêu. Sắn cần bạn giúp đỡ.
Dữ liệu nhập:
- Đầu vào bao gồm các trường hợp thử nghiệm T.
- Mỗi trường hợp thử nghiệm bắt đầu với một dòng chứa hai số nguyên E và F. Chúng
chỉ ra trọng lượng của một con lợn trống và con lợn chứa đầy tiền xu. Cả hai trọng
lượng được tính bằng gam. Không có con lợn nào nặng hơn 10 kg, điều đó có nghĩa là
1 ≤ E ≤ F ≤ 10000.
- Trên dòng thứ hai của mỗi trường hợp thử nghiệm, có một số nguyên N ( 1 ≤ N
≤ 500 ) cho biết số lượng tiền khác nhau được sử dụng để bỏ heo. Theo sau là chính
xác N dòng, mỗi dòng chỉ định một loại tiền. Các dòng này chứa hai số
nguyên P và W ( 1 ≤ P ≤ 50000, 1 ≤ W ≤ 10000 ). P là giá trị của đồng xu tính theo
đơn vị tiền tệ, W là trọng lượng tính bằng gam.
Kết quả:
- in chính xác một dòng đầu ra cho mỗi trường hợp thử nghiệm. Mỗi dòng chứa một
số nguyên là số tiền tối thiểu có trong heo đất. Nếu không thể xác định được số tiền
tối thiểu này vì một lý do gì đó hãy in ra -1.
Ví dụ
input
3
10 110
2
11
30 50
10 110
2
11
50 30
16
2
10 3
20 4
output
60
100
-1
2. DPKNSTE1 - TÈO EM 1
     Vì quá tham lam nên người anh bị rơi xuống biển, không mang được châu báu về
nhà. Vợ người anh ở nhà buồn phiền vì nhớ chồng nên đã đem con đi tìm chồng biệt
xứ. Lúc này trong làng có cậu Tèo em không có nhà nên được người em cho đến đây
ở để quản lý nhà cửa và cây khế cho anh trai trong khi gia đình anh trai chưa về.
     Vì thích khế ở đây nên chim thần lại đến. Lần này chim thần chở Tèo em đến đảo
đá quý. Trên hòn đảo có N viên đá quý. Viên thứ i có trọng lượng là wi và có giá trị
là vi. Tèo em mang theo túi năm gang có thể chứa tối đa trọng lượng là M. Hỏi tổng
giá trị tối đa của các viên đá quý mà Tèo em có thể mang về là bao nhiêu?
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số N và M (1 ≤ N ≤ 100, 1 ≤ M ≤ 109)
  - N dòng tiếp theo, dòng thứ i ghi hai số wi và vi lần lượt là trọng lượng và giá trị của
viên đá quý thứ i (0 ≤ wi ≤ 109 , 0 ≤ vi ≤ 103)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất mà Tèo em có thể mang về.
Ví dụ
input
38
3 30
4 50
5 60
output
90
input
1 1000000000
1000000000 10
output
10
3. DPKNSNA2 - NGƯỜI ANH 2
     Tiếng đồn hai vợ chồng người em thốt nhiên giàu có bay đến tai hai vợ chồng
người anh. Hai vợ chồng người anh vội vã đến chơi nhà em để dò xét. Nghe em thật
thà kể chuyện, người anh gạ đổi hết tài sản của mình để lấy túp lều tranh và cây khế.
Hai vợ chồng chỉ lo người em không chịu đổi, không ngờ người em vui vẻ ưng thuận
ngay.
     Hai vợ chồng người anh mừng rỡ như mở cờ trong bụng, lập tức giao hết tài sản
của mình cho em, và sáng hôm sau dọn ngay đến ở túp lều tranh trên mảnh vườn nhỏ
có cây khế ngọt. đến ở mảnh vườn chật hẹp, hai vợ chồng người anh không làm việc
gì cả. Còn được ít tiền hai vợ chồng đem tiêu dần, cả ngày chỉ nằm khểnh ngoài hè, hí
hửng nhìn lên cây khế, chờ chim bay đến. Một buổi sáng, có một luồng gió mạnh tạt
vào nhà, rồi hai vợ chồng thấy ngọn cây khế rung chuyển. Hai người hớt hải chạy ra
sân, vội nhìn lên cây thì quả nhiên thấy một con chim lớn đang ăn khế.
     Như đã hẹn trước, chim thần chở người anh đến đảo châu báu. Trên đảo
có N loại vàng, loại thứ i có trọng lượng là wi và có giá trị là vi. Người anh tham lam
hơn nên đem theo cái túi trăm gang có thể chứa được trọng lượng tối đa là M. Hỏi
tổng giá trị tối đa mà người anh có thể lấy là bao nhiêu?
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số M và N (1 ≤ N ≤ 500, 1 ≤ M ≤ 106)
  - N dòng tiếp theo, dòng thứ i ghi hai số vi và wi lần lượt là giá trị và trọng
lượng của loại vàng thứ i (0 ≤ wi , vi ≤ 109)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất người anh có thể lấy được.
Ví dụ
input
10 3
73
88
46
output
21
4. DPKNSCU1 - CUỘI 1
     Sau vài lần được chim thần đưa đi lấy kho báu, Tèo em có cuộc sống sung túc và
chuyển đi nơi khác. Lúc này Cuội được về ở đây để quản lý cây khế và ruộng vườn
của người anh.
     Chim thần lại đến vì lỡ yêu thích khế ở đây mất rồi. Như những lần trước, chim
thần lại chở cuội đi lấy châu báu. Lần này chim chở Cuội đến một đảo hoang để lấy
vàng. Trên đảo này có một đường hầm dài một chiều, chỉ vừa đủ rộng để đi từ bên
này sang bên kia một lần duy nhất. Trong đường hầm này có N đống vàng, đống
thứ i có w[i] (gr) vàng. Trên cửa hàng có ghi một lời nguyền không được lấy vàng ở
hai đống liên tiếp, nếu không thì hang sẽ sập xuống và chôn vùi tất cả mọi thứ. Cuội
chỉ mang theo cái túi 3 gang chịu sức nặng tối đa là K. Hỏi Cuội có thể lấy được tối
đa bao nhiêu vàng?
Dữ liệu nhập:
  - Dòng đầu tiên là số T (1 ≤ T ≤ 20) - Là số trường hợp thử nghiệm
  - T cặp dòng tiếp theo:
    + Dòng đầu chứa số nguyên N và K (1 ≤ N ≤ 2020; 1 ≤ K ≤ 2020)
    + Dòng hai chứa dãy w1, w2, .., wn (1 ≤ w[i] ≤ 2020) - Là lượng vàng ở n đống
Kết quả:
  - Ghi ra T số nguyên cách nhau dấu cách: Mỗi số nguyên lần lượt là đáp án cho một
thử nghiệm.
Ví dụ
input
2
5 100
50 10 20 30 40
5 87
21 45 30 12 14
output
90 65
input
3
5 120
50 10 20 30 40
7 82
18 28 19 28 12 25 13
7 123
23 26 19 28 21 22 32
output
110 81 95
5. DPKNSTE2 - TÈO EM 2
     Lại thích khế ở đây nên chim thần lại đến. Lần này chim thần chở Tèo em đến đảo
đá quý. Khổ nỗi cái gì lấy nhiều rồi cũng hết. Trên hòn đảo bây giờ chỉ còn N loại đá
quý, mỗi loại chỉ còn một số lượng nhất định. Loại thứ i có trọng lượng là wi có giá trị
là vi và có số lượng là ai. Tèo em mang theo túi năm gang có thể chứa tối đa trọng
lượng là M. Hỏi tổng giá trị tối đa của các viên đá quý mà Tèo em có thể mang về là
bao nhiêu?
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số N và M (1 ≤ N ≤ 100, 1 ≤ M ≤ 10000)
  - N dòng tiếp theo, dòng thứ i ghi ba số wi , vi , ai lần lượt là trọng lượng, giá trị và
số lượng của loại đá quý thứ i (0 ≤ wi, vi , ai ≤ 103)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất mà Tèo em có thể mang về.
Ví dụ
input
34
142
272
361
output
15
6. DPKNSCU2 - CUỘI 2
     Sau khi lấy được kho báu, Cuội và nhóm bạn của mình quyết định tổ chức một bữa
Party đến các địa điểm vui chơi trong thành phố để ăn mừng. Tuy nhiên Cuội chỉ
mang theo ngân sách là W, Cuội muốn đạt được niềm vui tối đa nhưng chi tiêu không
vượt quá giới hạn ngân sách.
     Cuội hỏi trước về phí vào cửa cho n địa điểm: Địa điểm thứ i có phí vào cửa là C[i]
và ước lượng niềm vui đạt được ở đây là V[i]. Nhưng làm thế nào để Cuội thực sự
chọn các bữa tiệc mang lại cho Cuội và nhóm bạn nhiều niềm vui nhất và không vượt
quá ngân sách?
     Viết một chương trình chọn một số điểm đến sao cho mang lại nhiều niềm vui nhất
nhưng chi tiêu không vượt quá ngân sách Cuội có. Hãy nhớ rằng Cuội không nhất
thiết phải chi tiêu số tiền chính xác bằng ngân sách Cuội có. Đạt được mức độ vui vẻ
cao nhất có thể, và không tiêu nhiều tiền hơn là hoàn toàn cần thiết.
Dữ liệu nhập:
  - Dòng đầu tiên của đầu vào chỉ định ngân sách bạn có W và số địa điểm là n.
  - N dòng sau chứa hai số. Số đầu tiên cho biết phí vào cửa, số thứ hai cho biết số
lượng niềm vui khi vào địa điểm này.
  - Có nhiều trường hợp thử nghiệm. Đầu vào kết thúc bằng 0 0.
Đầu ra
  - Đối với mỗi trường hợp thử nghiệm, chương trình của bạn phải xuất tổng của phí
vào cửa nhỏ nhất và tổng niềm vui lớn nhất của một giải pháp tối ưu. Cả hai số phải
được phân tách bằng một khoảng trắng.
Ràng buộc:
- 0 ≤ W ≤ 500
- 1 ≤ n ≤ 100
- 5 ≤ C[i] ≤ 25
- 0 ≤ V[i] ≤ 10
Ví dụ
input
50 10
13 8
19 10
16 8
12 9
10 2
12 8
13 5
15 5
11 7
16 2
00
output
48 32
7. DPKNSPR - TỔNG NGUYÊN TỐ
     Một số nguyên dương có thể được biểu thị dưới dạng tổng của các số nguyên tố
khác nhau, theo một cách hoặc nhiều cách. Cho hai số nguyên dương n và k, bạn nên
đếm số cách để biểu thị n là một tổng của k số nguyên tố khác nhau. Ở đây, hai cách
được coi là giống nhau nếu chúng tổng hợp cùng một bộ của các số nguyên tố.
     Ví dụ, 8 có thể được biểu thị là 3 + 5 và 5 + 3 nhưng chúng được tính là 1 cách.
Khi n và k lần lượt là 24 và 3, câu trả lời là hai vì có hai bộ {2, 3, 19} và {2, 5, 17} có
tổng bằng 24. Không có bộ ba số nguyên tố nào khác có tổng bằng 24.
     Cho n = 24 và k = 2, câu trả lời là ba, vì có ba bộ {5, 19}, {7, 17} và {11, 13}.
Dành cho n = 2 và k = 1, câu trả lời là một, vì chỉ có một tập {2} có tổng bằng 2. Với
n = 1 và k = 1, câu trả lời bằng không. Vì 1 không phải là số nguyên tố, bạn không
nên đếm {1}. Với n = 4 và k = 2, Câu trả lời là 0, vì không có tập hợp của hai số
nguyên tố khác nhau có tổng bằng 4.
     Công việc của bạn là viết một chương trình báo cáo số cách như vậy cho n và k đã
cho.
Dữ liệu nhập:
- Đầu vào gồm nhiều dòng, mỗi dòng là một trường hợp thử nghiệm. Mỗi dòng chứa
hai số nguyên dương n và k cách nhau bởi một khoảng trắng. Bạn có thể cho rằng n ≤
1120 và k ≤ 14.
- Dữ liệu kết thúc bằng hai số 0 cách nhau dấu cách.
Kết quả:
- Đầu ra gồm các dòng, mỗi dòng tương ứng với một tập dữ liệu đầu vào. Một dòng
đầu ra nên chứa một số nguyên không âm cho biết số cách cho n và k được chỉ định
trong tập dữ liệu vào tương ứng.
Ví dụ
input
24 3
24 2
21
11
42
18 3
17 1
17 3
17 4
100 5
1000 10
1120 14
00
output
2
3
1
0
0
2
1
0
1
55
200102899
2079324314
8. DPKNSCK1 - CÂY KHẾ 1
     Trong truyện cổ tích "Cây Khế" ta đã biết rằng sau khi ăn những trái khế ngọt
ngon chim thần đã chở người em với một cái túi ba gang đến hòn đảo đầy vàng bạc
châu báu. Người em băn khoăn không biết chọn hòn vàng nào cho vào túi vì chỉ có
một cái túi ba gang.
     Giả sử rằng trên hòn đảo kia có N hòn vàng khác nhau, hòn vàng thứ i có giá trị
là ai và có thể tích là bi. Cũng giả sử rằng cái túi mà người em mang đi chỉ có thể tích
là M. Bạn hãy giúp người em chọn ra trong N hòn vàng trên một số hòn vàng sao cho
tổng thể tích của các hòn vàng được chọn không vượt quá M và tổng giá trị các hòn
vàng được chọn là lớn nhất.
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số N, M (1 ≤ N, M ≤ 1000)
  - N dòng tiếp theo, dòng thứ i ghi hai số ai và bi lần lượt là giá trị và thể tích của hòn
vàng thứ i (0 ≤ ai, bi ≤ 105)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất của các hòn vàng nhặt được.
Ví dụ
input
5 10
20 3
19 1
30 7
24 3
15 6
output
63
9. DPKNSCK2 - CÂY KHẾ 2
     Trong truyện cổ tích "Cây Khế" ta đã biết rằng sau khi ăn những trái khế ngọt
ngon chim thần đã chở người em với một cái túi ba gang đến hòn đảo đầy vàng bạc
châu báu. Người em băn khoăn không biết chọn hòn vàng nào cho vào túi vì chỉ có
một cái túi ba gang.
     Giả sử rằng trên hòn đảo kia có N hòn vàng khác nhau, hòn vàng thứ i có giá trị
là ai và có thể tích là bi. Cũng giả sử rằng cái túi mà người em mang đi chỉ có thể tích
là M. Bạn hãy giúp người em chọn ra trong N hòn vàng trên một số hòn vàng sao cho
tổng thể tích của các hòn vàng được chọn không vượt quá M và tổng giá trị các hòn
vàng được chọn là lớn nhất.
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số N, M (1 ≤ N, M ≤ 1000)
  - N dòng tiếp theo, dòng thứ i ghi hai số ai và bi lần lượt là giá trị và thể tích của hòn
vàng thứ i (0 ≤ ai, bi ≤ 105)
Kết quả:
  - Dòng đầu ghi ra một số nguyên duy nhất là số lượng các hòn vàng người em nhặt.
Dòng hai ghi chỉ số của các hòn vàng.
  - Chỉ số của các hòn vàng giống với thứ tự của nó trong input. Nếu có nhiều đáp án
tối ưu bạn được in một đáp án tối ưu bất kỳ.
Ví dụ
input
5 10
20 3
19 1
30 7
24 3
15 6
output
3
124
10.DPKNSUB1 - SUBSET SUM
     Cho một tập hợp n số, kiểm tra xem nó có thể được phân chia thành hai tập con
sao cho tổng các phần tử trong hai tập hợp bằng nhau hay không.
Dữ liệu nhập:
- Dòng đầu tiên chứa số nguyên ' T ' biểu thị tổng số trường hợp kiểm tra. (1 ≤ T ≤ 20)
- Mỗi trường hợp thử nghiệm gồm hai dòng. Dòng đầu tiên chứa N, biểu thị số phần
tử trong tập hợp và dòng thứ hai chứa các phần tử của tập hợp. Có 1 ≤ N ≤ 100, mỗi
phần tử là một số nguyên dương có giá trị không quá 103.
Kết quả:
- Nếu có thể hãy in YES, còn không hãy in NO.
Ví dụ
input
2
4
1 5 11 5
3
135
output
YES
NO
11.DPKNSKE - CHIA KẸO
     Tí và Tèo là hai anh em, hai chú nhóc này rất thích kẹo ngọt. Một hôm Chú của hai
nhóc ở Hàn Quốc về mua cho hai nhóc rất nhiều kẹo. Vấn đề bây giờ là chia kẹo ra
hai phần để một nhóc một phần. Cả hai nhóc đều muốn chênh lệch số lượng kẹo giữa
hai phần ít nhất có thể để phần nhiều dành cho cậu em.     
     Cho n gói kẹo, gói thứ i có ai viên. Hãy chia các gói thành 2 phần sao cho chênh
lệch giữa 2 phần là ít nhất.
Dữ liệu nhập:
- Dòng đầu tiên chứa số nguyên T biểu thị tổng số trường hợp kiểm tra (1 ≤ T ≤ 20)
- Mỗi trường hợp thử nghiệm gồm hai dòng. Dòng đầu tiên chứa N, biểu thị số bao
kẹo và dòng thứ hai chứa số kẹo có trong n gói kẹo này. (1 ≤ N ≤ 100, 1 ≤ A[i] ≤ 500)
Kết quả:
- Trong mỗi dòng riêng biệt in chênh lệch tuyệt đối tối thiểu
Ví dụ
input
2
4
1 6 5 11
4
36 7 46 40
output
1
23
12.DPKNSKC1 - KIM CƯƠNG 1
     Trong truyện cổ tích "Cây Khế" ta đã biết rằng sau khi ăn những trái khế ngọt
ngon chim thần đã chở người em với một cái túi ba gang đến hòn đảo đầy vàng bạc
châu báu. Người em sau khi lấy được vàng ở đảo này đã có cuộc sống giàu sang.
     Hôm nay chim thần lại chở người em nhưng đến một hòn đảo châu báu nhiều hơn
đảo trước, đảo này chỉ chứa toàn kim cương. Trên đảo này kim cương chia ra N loại
với giá trị và thể tích khác nhau, số lượng mỗi loại là vô cùng nhiều. Loại kim cương
thứ i có giá trị là ai và có thể tích là bi. Cũng giả sử rằng cái túi mà người em mang đi
chỉ có thể tích là M. Bạn hãy giúp người em chọn ra một số hòn kim cương sao cho
tổng thể tích không vượt quá M và tổng giá trị của các viên kim cương là lớn nhất.
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số N, M (1 ≤ N ≤ 1000,1 ≤ M ≤ 11111)
  - N dòng tiếp theo, dòng thứ i ghi hai số ai và bi lần lượt là giá trị và thể tích của loại
kim cương thứ i (0 ≤ ai ≤ 109, 0 ≤ bi ≤ 104)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất của các hòn kim cươngnhặt
được.
Ví dụ
input
35
51
42
33
output
25
13.DPKNSCA - BÁN CÁ
     Người đánh cá bắt được n con cá, khối lượng mỗi con là ai, đem bán ngoài chợ. Ở
chợ cá, người ta không mua cá theo từng con mà mua theo một lượng nào đó. Chẳng
hạn 3 kg, 5kg… Ví dụ: có 3 con cá, khối lượng lần lượt là: 3, 2, 4. Mua lượng 6 kg sẽ
phải lấy con cá thứ 2 và và thứ 3. Mua lượng 3 kg thì lấy con thứ nhất. Không thể
mua lượng 8 kg.
     Nếu bạn là người đầu tiên mua cá, có bao nhiêu lượng bạn có thể chọn?
Dữ liệu nhập:
- Dòng đầu tiên chứa số nguyên T biểu thị tổng số trường hợp kiểm tra.
- Mỗi trường hợp thử nghiệm gồm hai dòng. Dòng đầu tiên chứa N, biểu thị số lượng
cá và dòng thứ hai chứa khối lượng ai của n con cá.
Kết quả:
- in ra mỗi dòng là một trường hợp: Các khối lượng cá bạn có thể chọn.
Các ràng buộc:
- 1 ≤ T ≤ 20; 1 ≤ N ≤ 100
- 0 ≤ A[i] ≤ 200
Ví dụ
input
2
5
23456
2
12
output
0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20
0123
14.DPKNSCO - ĐỔI TIỀN 1

     Ở đất nước Omega người ta chỉ tiêu tiền xu. Có N loại tiền xu, loại thứ i có mệnh
giá là Ci đồng, số lượng mỗi loại rất lớn. Một người khách du lịch đến Omega du lịch
với số tiền M đồng. Ông ta muốn đổi số tiền đó ra tiền xu Omega để tiện tiêu dùng.
Ông ta cũng muốn số đồng tiền đổi được là ít nhất (cho túi tiền đỡ nặng khi đi đây đi
đó). Bạn hãy giúp ông ta tìm cách đổi tiền.
Dữ liệu nhập:
- Dòng đầu tiên chứa số nguyên T biểu thị số lượng trường hợp kiểm tra.
- Dòng đầu tiên của mỗi trường hợp thử nghiệm là M và N.
- Dòng thứ hai của mỗi trường hợp thử nghiệm chứa giá trị của N đồng tiền C1.. Cn
Đầu ra:
- Mỗi trường hợp in một dòng là số lượng xu tối thiểu để thực hiện thay đổi, nếu
không thể in "-1".
Các ràng buộc:
- 1 ≤ T ≤ 100
- 1 ≤ M ≤ 10^3
- 1 ≤ N, C[i] ≤ 200
Ví dụ
input
1
72
21
output
4

Giải thích ví dụ:


- Chúng ta có thể sử dụng xu có giá trị 2 ba lần và xu có giá trị 1 một lần để đổi được
7 xu.
15.DPKNSKC2 - KIM CƯƠNG 2
     Trong truyện cổ tích "Cây Khế" ta đã biết rằng sau khi ăn những trái khế ngọt
ngon chim thần đã chở người em với một cái túi ba gang đến hòn đảo đầy vàng bạc
châu báu. Người em sau khi lấy được vàng ở đảo này đã có cuộc sống giàu sang.
     Hôm nay chim thần lại chở người em nhưng đến một hòn đảo châu báu nhiều hơn
đảo trước, đảo này chỉ chứa toàn kim cương. Trên đảo này kim cương chia ra N loại
với giá trị và thể tích khác nhau, số lượng mỗi loại là vô cùng nhiều. Loại kim cương
thứ i có giá trị là ai và có thể tích là bi. Cũng giả sử rằng cái túi mà người em mang đi
chỉ có thể tích là M. Bạn hãy giúp người em chọn ra một số hòn kim cương sao cho
tổng thể tích không vượt quá M và tổng giá trị của các viên kim cương là lớn nhất.
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số N, M (1 ≤ N ≤ 1000,1 ≤ M ≤ 11111)
  - N dòng tiếp theo, dòng thứ i ghi hai số ai và bi lần lượt là giá trị và thể tích của loại
kim cương thứ i (0 ≤ ai ≤ 109, 1 ≤ bi ≤ 104)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất của các hòn kim cương nhặt
được.
  - Dòng thứ hai ghi N số nguyên c1, c2, ..., cn. Với ci là số lượng kim cương loại i đã
lấy.
  - Nếu có nhiều đáp án tối ưu bạn được in một đáp án tối ưu bất kỳ.
Ví dụ
input
37
52
63
33
output
16
210
16.DPKNSSU - NẤU ĂN
     Một vài tháng qua, Conan tập luyện rất nhiều cho kỳ thi ACM/ICPC. Cậu chỉ ăn,
ngủ và code, do đó đã tăng thêm vài ký. Sau cuộc thi, cậu lên kế hoạch để trở lại cuộc
sống khỏe mạnh hơn: tập thể dục và có chế độ ăn hợp lý.
     Có N phần ăn, phần ăn thứ i có hàm lượng dinh dưỡng calo là A[i]. Một bữa ăn là
sự kết hợp của các phần ăn, trong đó mỗi phần ăn xuất hiện không quá 1 lần. Một
công thức hoàn hảo là công thức mà có tổng dinh dưỡng là đúng M calo.
     Bạn hãy giúp Conan đếm xem có đủ K công thức hoàn hảo khác nhau hay không.
Hai công thức được xem là khác nhau nếu có tối thiểu một phần ăn trong một công
thức này nhưng không có trong công thức kia. 
Dữ liệu nhập:
- Dòng đầu tiên gồm 3 số nguyên N, M, K cách nhau một khoảng trắng (1 ≤ N ≤ 100,
1 ≤ M ≤ 10.000, 1 ≤ K ≤ 100 )
- Dòng thứ hai là N số nguyên Ai (1 ≤ Ai ≤ 10.000)
Dữ liệu xuất:
- Nếu có tối thiểu K công thức hoàn hảo, in ra từ "ENOUGH" (không in dấu nháy).
- Nếu không có đủ K công thức hoàn hảo, in ra số lượng công thức hoàn hảo tính
được.
Ví dụ
input
10 1000 7
100 200 300 400 500 600 700 800 900 1000
output
ENOUGH
input
10 1000 30
100 200 300 400 500 600 700 800 900 1000
output
10
17.DPKNSNA1 - NGƯỜI ANH 1
     Tiếng đồn hai vợ chồng người em thốt nhiên giàu có bay đến tai hai vợ chồng
người anh. Hai vợ chồng người anh vội vã đến chơi nhà em để dò xét. Nghe em thật
thà kể chuyện, người anh gạ đổi hết tài sản của mình để lấy túp lều tranh và cây khế.
Hai vợ chồng chỉ lo người em không chịu đổi, không ngờ người em vui vẻ ưng thuận
ngay.
     Hai vợ chồng người anh mừng rỡ như mở cờ trong bụng, lập tức giao hết tài sản
của mình cho em, và sáng hôm sau dọn ngay đến ở túp lều tranh trên mảnh vườn nhỏ
có cây khế ngọt. đến ở mảnh vườn chật hẹp, hai vợ chồng người anh không làm việc
gì cả. Còn được ít tiền hai vợ chồng đem tiêu dần, cả ngày chỉ nằm khểnh ngoài hè, hí
hửng nhìn lên cây khế, chờ chim bay đến. Một buổi sáng, có một luồng gió mạnh tạt
vào nhà, rồi hai vợ chồng thấy ngọn cây khế rung chuyển. Hai người hớt hải chạy ra
sân, vội nhìn lên cây thì quả nhiên thấy một con chim lớn đang ăn khế.
     Như đã hẹn trước, chim thần chở người anh đến đảo châu báu. Trên đảo có N hòn
vàng, hòn thứ i có trọng lượng là wi và có giá trị là vi. Người anh tham lam hơn nên
đem theo cái túi trăm gang có thể chứa được trọng lượng tối đa là M. Hỏi tổng giá trị
tối đa mà người anh có thể lấy là bao nhiêu?
Dữ liệu nhập:
  - Dòng đầu tiên ghi hai số M và N (1 ≤ N ≤ 500, 1 ≤ M ≤ 106)
  - N dòng tiếp theo, dòng thứ i ghi hai số vi và wi lần lượt là giá trị và trọng lượng của
hòn vàng thứ i (0 ≤ wi , vi ≤ 109)
Kết quả:
  - Ghi ra một số nguyên duy nhất là tổng giá trị lớn nhất của các hòn vàng nhặt được.
Ví dụ
input
10 3
73
88
46
output
11

You might also like