시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
1 초 (하단 참고) | 512 MB | 19 | 13 | 8 | 57.143% |
Albert는 다양한 크기의 나무 밑둥 (stump) 모양의 장난감으로 징검다리를 만들고 싶어한다.
각 장난감은 1부터 n까지 번호가 붙어있고, i번째 장난감의 높이는 H[i] 이고 반지름은 R[i] 이다.
Albert는 n개의 나무 밑둥 장난감을 왼쪽에서 오른쪽으로 임의의 순서로 나열하되, 아래의 조건을 만족하도록 하고 싶다.
예를 들어 n = 3, H = [10, 20, 30], 그리고 R = [2, 3, 4]라 하자.
이 예제의 경우 상기한 (1번, 3번, 2번) 순서로 나열하는 경우 외에 (2번, 3번, 1번) 순서로 나열하는 경우도 두 조건을 만족한다.
다른 예로, n = 3, H = [10, 20, 30], 그리고 R = [2, 5, 2]라 하자.
이 경우, 세 장난감을 나열하는 6가지 방법 중 상기한 두 조건을 모두 만족하는 경우는 없다.
마지막으로, n = 5, H = [10, 20, 30, 40, 50], R = [2, 7, 3, 4, 6] 이라 하자.
이 경우, 총 4가지 다른 방법으로 장난감을 나열하여 상기한 두 조건을 만족시킬 수 있다.
입력으로 n과 각 장난감의 높이/반지름이 주어졌을 때, 위의 두 조건을 만족하며 장난감을 나열할 수 있는 방법이 있는지 알아보자.
첫 줄에는 테스트 케이스의 수 T가 주어진다.
각 테스트 케이스는 세 줄에 나누어 주어진다.
첫 줄에는 n이 주어진다.
둘째 줄에는 장난감의 높이 (H[i])를 나타내는 n개의 정수가 공백으로 구분되어 주어진다.
셋째 줄에는 장난감의 반지름 (R[i])을 나타내는 n개의 정수가 공백으로 구분되어 주어진다.
각 테스트 케이스에 대하여 답을 한 줄에 출력한다.
조건을 만족하는 장난감 나열법이 있을 경우, n개의 장난감 번호를 공백으로 구분하여 출력한다. 본문의 예제 처럼 다양한 답이 존재하는 경우, 아무 것이나 한 가지 방법을 출력하면 된다. 조건을 만족하는 방법이 없을 경우 -1을 출력한다.
8 3 10 20 30 2 5 2 3 10 20 30 2 3 4 5 10 20 30 40 50 2 7 3 4 6 3 2 4 5 6 1 4 3 1 2 3 2 6 2 5 1 1 2 6 7 4 6 4 2 8 5 2 6 4 4 8 6 4 2 5 1 5 1 2 3 4 5 2 7 6 4 3
-1 1 3 2 1 2 3 5 4 -1 -1 2 3 5 4 1 4 5 2 3 1 -1
예제 1-3: 본문에서 다루었다.
예제 4-예제8: 추가 설명 없음.