가장 높은 탑 쌓기

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

문제

밑면이 정사각형인 직육면체 벽돌 여러 개가 있다. 벽돌을 회전할 수 없으며, 입력된 밑면을 그대로 사용해 아래에서 위로 한 개씩 쌓아 탑을 만든다. 다음 조건을 모두 지키면서 만들 수 있는 탑의 높이 합이 최대가 되도록 하라.

  1. 벽돌은 회전할 수 없다. 옆면을 밑면으로 사용할 수 없다.
  2. 밑면의 넓이가 같은 두 벽돌은 없고, 무게가 같은 두 벽돌도 없다.
  3. 벽돌의 높이는 서로 같을 수 있다.
  4. 어떤 벽돌 위에는 그 벽돌보다 밑면 넓이가 큰 벽돌을 올릴 수 없다.
  5. 어떤 벽돌 위에는 그 벽돌보다 무거운 벽돌을 올릴 수 없다.

입력

첫째 줄에 벽돌의 수 N이 주어진다. N은 100 이하이다. 다음 N개 줄에는 벽돌 하나의 밑면 넓이, 높이, 무게가 차례대로 주어진다. 벽돌은 입력 순서대로 1번부터 N번까지 번호가 붙는다. 넓이, 높이, 무게는 모두 10,000 이하의 자연수이다.

출력

첫째 줄에 탑에 사용한 벽돌의 수를 출력한다. 이어서 탑의 맨 위 벽돌부터 맨 아래 벽돌까지, 한 줄에 하나씩 벽돌 번호를 출력한다.