프로그램 명: tower
제한시간: 1 초
밑면이 정사각형인 직육면체 벽돌들을 사용하여 탑을 쌓고자 한다.탑은 벽돌을 한 개씩
아래에서 위로 쌓으면서 만들어 간다.
아래의 조건을 만족하면서 가장 높이 탑을 쌓을 수
있는 프로그램을 작성하시오.
- 벽돌은 회전 시킬 수 없다. 즉, 옆면을 밑면으로 사용할 수 없다.
- 벽돌들의 높이는 같을 수도 있다.
- 탑을 쌓을 때 밑면이 좁은 벽돌 위에 밑면이 넓은 벽돌은 놓을 수 없다.
- 무게가 무거운 벽돌을 무게가 가벼운 벽돌 위에 놓을 수 없다.
- 같은 넓이 또는 같은 무게인 경우 위에 올릴수 없다
입력 형식
입력 의 첫 째 줄에는 입력될 벽돌의 수가 주어진다. 입력으로 주어지는 벽돌의 수는 최대 100 개이다.
둘 째 줄부터는 각 줄에 한
개의 벽돌에 관한 정보인
가 차례대로 양의 정수로 주어진다. 각 벽돌은 입력되는 순서대로 1 부터 연속적인 번호를 가진다.
출력 형식
- 첫째 줄에는 탑을 쌓을 때 사용된 벽돌의 수를 출력하고,
- 두 번째 줄부터는 탑의 가장 위 벽돌부터 가장 아래 벽돌까지 차례로 한 줄에 하나씩 벽돌 번호를 빈 칸 없이 출력한다.
입력과 출력의 예
입력
5
25 3 4
4 4 6
9 2 3
16 2 5
1 5 2
출력
3
5
3
1
출처: koi 중등 기출
[질/답]
[제출 현황]
[푼 후(1)]