상자

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 물품마다 90도 회전을 허용했을 때 담을 수 있는 표준 상자 중 부피가 가장 작은 것을 찾고, 없으면 담을 수 없다고 출력한다.
난이도

보통10점 중 4점

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

문제

요즘은 거의 모든 물건을 인터넷에서 사고팔 수 있다. 문제는 배송이다. 물건을 보내기 전에 골판지 상자에 잘 포장해서 물건을 보호해야 한다.

물건의 모양과 크기는 제각각이라서, 딱 맞는 크기의 상자를 찾는 일이 쉽지 않다. 상자가 너무 작으면 물건이 들어가지 않는다. 상자가 쓸데없이 크면 배송비가 더 들고, 물건이 상자 안에서 이리저리 움직이다가 파손될 가능성도 커진다.

상자 제조사는 정해진 표준 크기의 상자들만 판매한다. 당신의 임무는 물건이 들어갈 수 있는 상자들 중에서 부피가 가장 작은 표준 상자를 찾는 것이다.

각 상자는 주어진 길이, 너비, 높이를 가진 직육면체이다. 각 물건 역시 주어진 길이, 너비, 높이를 가진 직육면체이다. 물건을 상자에 넣기 전에 어느 방향으로든 90도의 배수만큼 회전시킬 수 있지만, 상자에 넣을 때는 물건의 각 면이 상자의 면과 평행해야 한다. 물건의 세 변의 길이가 모두 상자의 대응하는 변의 길이보다 작거나 같으면 그 물건은 그 상자에 들어간다.

입력

첫째 줄에는 사용할 수 있는 상자 크기의 종류 수를 나타내는 정수 nn (0<n<10000 < n < 1000)이 주어진다. 다음 nn개의 줄에는 각각 상자의 길이, 너비, 높이를 나타내는 세 정수가 주어진다. 그다음 줄에는 포장할 물건의 개수를 나타내는 정수 mm (0<m<10000 < m < 1000)이 주어진다. 다음 mm개의 줄에는 각각 물건의 길이, 너비, 높이를 나타내는 세 정수가 주어진다. 모든 치수는 밀리미터 단위이며 1 mm1\,\text{mm} 이상 2000 mm2000\,\text{mm} 이하이다.

출력

입력의 각 물건에 대해 한 줄씩, 총 mm개의 줄을 출력한다. 각 물건에 대해 그 물건이 들어갈 수 있는 가장 작은 상자의 부피(단위: mm3\text{mm}^3)를 정수 하나로 출력한다. 같은 크기의 상자는 여러 물건에 반복해서 사용할 수 있다. 물건이 어떤 상자에도 들어가지 않으면 Item does not fit.를 출력한다.

예제1

  1. 예제 1

    입력
    3
    1 2 3
    2 3 4
    3 4 5
    5
    1 1 1
    2 2 2
    4 3 2
    4 3 3
    4 4 4
    
    예상 출력
    6
    24
    24
    60
    Item does not fit.