QTGIFT2 - Valentine knapsack
English | Vietnamese |
Vào ngày 14/2, ĐB nhận được rất nhiều socola, dĩ nhiên ĐB rất vui, nhưng khổ nỗi cặp cậu ấy quá nhỏ, không thể mang hết được số socola ấy về nhà. Thế là cậu đành phải bỏ lại một số thanh. Nhưng chỉ nhìn ngoài thì không biết thanh nào ngon hơn, mà không thể bóc ra thử được, thế nên cậu quyết định lấy khối lượng socola nhiều nhất có thể. Tuy nhiên cặp ĐB chỉ chứa được tối đa c (g) socola. Mà cậu cũng không thể bẻ các thanh socola ra được (vì sẽ bẩn hết cặp).
Hãy giúp ĐB tìm được cách chọn tốt nhất nhé
Input :
Dòng đầu : hai số nguyên n và c, là số thanh socola ĐB được nhận và khối lượng tối đa mà cặp ĐB có thể chứa.
Dòng hai : gồm n số, số thứ i (w[i]) là khối lượng của thanh thứ i
Output :
Dòng đầu : gồm hai số x là k, là khối lượng socola tối đa mà ĐB có thể mang về và số thanh socola mà ĐB mang về
Dòng hai : gồm k số, là chỉ số của các thanh socola mà ĐB mang về
Giới hạn :
- 1 ≤ n ≤ 105
- 1 ≤ c ≤ 109
- 1 ≤ w[i] ≤ 104
Cách chấm điểm :
Có 30 test, với mỗi test, gọi xmax là kết quả tối ưu, x là kết quả mà chương trình của bạn đưa ra (tất nhiên các chỉ số khác bạn đưa ra phải khớp), điểm của bạn sẽ là : max(0, 10 – [(xmax – x) / log10xmax]). Trong đó [a] là số nguyên nhỏ nhất không nhỏ hơn a
Ví dụ :
Input :
6 100
26 15 69 24 45 90
Output :
95 2
1 3
Nếu chương trình của bạn xuất ra :
95 3
1 5 4
Bạn sẽ được 10 điểm.
Nếu chương trình của bạn xuất ra :
90 1
6
Bạn sẽ được max(0, 10 – (95 – 90) / log1095) = 7 điểm.
Nếu chương trình của bạn xuất ra :
95 2
1 2
Bạn sẽ được… 0 điểm :v
hide comments
|
Mitch Schwartz:
2014-02-21 14:16:46
1) Suggest changing "maximum weight he can take" -> "proposed maximum weight he can take".
|
Added by: | Coder nhà mình |
Date: | 2014-02-14 |
Time limit: | 1s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 |