책장 병목 서브태스크 1초 1024MB
문제
브리안나는 독서광이다. 집에는 그녀가 좋아하는 책들로 가득 찬 큰 책장이 있다.
그녀의 컬렉션은 탐정 소설, 공상 과학 소설부터 전기까지 다양하다.
최근 브리안나는
그러나 새로운 책들은 현재 집안 곳곳에 쌓여 있고, 바닥에는 거대한 더미를 이루고 있다.
그 사이, 책장 한 쪽은 먼지와 어울리지 않는 가정용 기구들로 엉망이 되어 있다.
바닥에 쌓인 새로운 책들이 너무 많아져서 브리안나는 마침내 그 책들을 책장 위에 올리기로 결심했다. 하지만 먼저 책장 위를 정리해야 한다.
브리안나는 책들을 서로 쌓지 않고 수평으로 정렬하고 싶어한다.
책장이 모든 책을 문제 없이 수용할 수 있을 만큼 넓지만, 책장 정리하는 데 시간이 걸리기 때문에 브리안나는 정리해야 할 책장 부분의 폭을 최소화하고 싶어한다.
각 책은 세 개의 변 길이
책장 위의 공간은 그 위의 책장과의 간격
브리안나는 각 책을 3차원 공간에서 원하는 대로 회전할 수 있다.
책장이 깊어서 어떤 방향으로 놓아도 책이 떨어지지 않지만,
모든 책은 반드시 책장 위에 전체 면을 닿게 올려야 하며, 가장자리에만 닿아서는 안 된다.
브리안나의 책들이 필요한 최소한의 책장 폭은 얼마일까?
입력
한 줄에 두 개의 정수
다음
출력
브리안나의 책들이 필요한 최소한의 책장 폭을 출력하라. 만약 책을 책장에 놓는 것이 불가능하다면 "impossible"을 출력하라.
부분문제
| 번호 | 점수 | 조건 |
|---|---|---|
| #1 | 30점 | |
| #2 | 70점 | 추가 제약 조건 없음 |
예제 #1
1 3
10 2 5
5
예제 #2
1 3
10 4 5
impossible
예제 #3
2 10
10 2 10
2 3 4
4
예제 #4
3 1000000000
1000000000 1000000000 1000000000
1000000000 1000000000 1000000000
1000000000 1000000000 1000000000
3000000000