만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

책장 병목

면접 대비

시간 제한3초메모리 제한1024 MB

요약
각 책을 세로 길이가 H 이하가 되도록 회전할 때, n권의 책을 한 줄로 놓는 데 필요한 최소 선반 너비를 구합니다.
난이도

쉬움10점 중 3점

유형
구현, 그리디
정답자
아직 제출이 없습니다

문제

브리안나는 책벌레다. 집에는 추리소설과 공상과학 소설부터 전기까지 좋아하는 책을 모두 꽂아 둔 큰 책장이 있다.

최근 그녀는 그래픽 노블 nn권을 컬렉션에 더했다. 새 책들은 방 여기저기 바닥에 놓여 큰 더미를 이루고 있다. 한편 선반 판 하나에는 먼지가 쌓여 있고, 그곳에 어울리지 않는 생활용품들도 놓여 있다. 바닥에 흩어진 책이 감당하기 어려울 만큼 늘어나서, 브리안나는 이 책들을 그 선반 판에 올리기로 했다. 그러려면 먼저 선반에 자리를 비워야 한다.

그림 B.1: 세 번째 입력을 시각화한 그림.

브리안나는 책을 쌓지 않고 한 줄로 나란히 놓으려 한다. 선반은 책을 모두 올릴 만큼 넓지만, 자리를 비우는 데 시간이 든다. 그래서 비워야 하는 선반 부분의 너비를 최소로 줄이고 싶어 한다.

각 책은 세 변의 길이가 ll, ww, hh인 직육면체다. 선반 위 공간은 바로 위의 선반 판에 막혀 있으므로, 책의 세로 길이가 두 선반 판 사이의 거리 HH 이하일 때만 세워 둘 수 있다. 브리안나는 각 책을 3차원 공간에서 원하는 대로 회전시킬 수 있다. 어떤 방향으로 놓아도 책이 떨어지지 않을 만큼 선반은 충분히 깊다고 보장된다. 다만 모든 책은 선반 판에 면 전체가 닿아 똑바로 서 있어야 하며, 모서리만 닿아서는 안 된다.

책들을 놓는 데 필요한 선반의 최소 너비는 얼마인가?

입력

입력은 다음과 같다.

첫 줄에 책의 개수 nn과 선반의 높이 HH가 정수로 주어진다(1≤n≤1051\leq n\leq 10^5, 1≤H≤1091\leq H \leq 10^9).

이어서 nn개의 줄에 각각 세 정수 ll, ww, hh(1≤l,w,h≤1091\leq l,w,h \leq 10^9)가 주어지며, 이는 책 한 권의 크기다.

출력

책들을 놓는 데 필요한 선반의 최소 너비를 출력한다. 책을 선반에 놓는 것이 불가능하면 impossible을 출력한다.

예제4

  1. 예제 1

    입력
    1 3
    10 2 5
    
    예상 출력
    5
    
  2. 예제 2

    입력
    1 3
    10 4 5
    
    예상 출력
    impossible
    
  3. 예제 3

    입력
    2 10
    10 2 10
    2 3 4
    
    예상 출력
    4
    
  4. 예제 4

    입력
    3 1000000000
    1000000000 1000000000 1000000000
    1000000000 1000000000 1000000000
    1000000000 1000000000 1000000000
    
    예상 출력
    3000000000