아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

Bin Packing

시간 제한4초메모리 제한256 MB

요약
무게가 각각 주어진 24개 이하의 물건을 용량 S인 통에 담을 때, 각 통의 합이 S를 넘지 않도록 하는 최소 통 개수를 구한다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산, 백트래킹, 그리디
정답자
아직 제출이 없습니다

문제

무게가 w_1,w_2,…,w_nw\_1, w\_2, \ldots, w\_n인 물건 nn개가 주어진다. 각 상자에 담긴 물건의 무게 합이 SS 이하가 되도록 모든 물건을 상자에 담을 때, 필요한 상자의 최소 개수를 구한다.

입력

첫째 줄에 정수 nn과 SS가 주어진다. 1≤n≤241 \leq n \leq 24이고 1≤S≤1081 \leq S \leq 10^8이다. 둘째 줄에 w_1,w_2,…,w_nw\_1, w\_2, \ldots, w\_n이 주어진다. 1≤w_i≤S1 \leq w\_i \leq S이다.

출력

주어진 물건을 모두 담는 데 필요한 상자의 최소 개수를 출력한다.

힌트

물건들은 크기 10인 상자 세 개에 다음과 같이 담을 수 있다: [5,3], [6], [7]. 전체 무게가 21이므로 두 상자에 담는 것은 불가능하다.

예제1

  1. 예제 1

    입력
    4 10
    5 6 3 7
    
    예상 출력
    3