만드는 중입니다

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

슬라갈리차

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

요약
퍼즐 조각을 가장자리가 맞도록 한 줄로 배열합니다. 왼쪽 끝은 왼쪽 테두리 조각, 오른쪽 끝은 오른쪽 테두리 조각이어야 하며, 번호 수열이 사전순으로 가장 작아야 합니다.
난이도

보통10점 중 6점

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

문제

어린 파비안은 NN개의 조각으로 이루어진 1차원 직소 퍼즐을 받았다. 그는 곧 각 조각이 다음 유형 중 하나에 속한다는 것을 알아챘다.

또한 NN개의 조각 중에는 5번 또는 6번 유형(왼쪽 경계)이 정확히 하나 있고, 7번 또는 8번 유형(오른쪽 경계)이 정확히 하나 있다.

파비안은 모든 조각을 한 줄로 배열하려고 한다. 첫 번째(가장 왼쪽) 조각은 5번 또는 6번 유형이어야 하고, 마지막(가장 오른쪽) 조각은 7번 또는 8번 유형이어야 한다. 두 조각은 맞닿는 경계의 모양이 서로 다를 때에만 나란히 놓을 수 있다. 즉 한쪽은 볼록(outie, tab)하고 다른 쪽은 오목(innie, blank)해야 한다. 조각은 회전할 수 없다.

퍼즐이 그대로면 너무 쉽다고 생각한 파비안은 각 조각에 서로 다른 양의 정수를 하나씩 적었다. 이제 그는 사전순으로 가장 작은 해를 구하고 싶어 한다. 해 A가 해 B보다 사전순으로 작다는 것은, 두 해가 처음 다른 위치 ii에서 A의 ii번째 조각에 적힌 수가 B의 ii번째 조각에 적힌 수보다 작다는 뜻이다.

입력

첫 번째 줄에 정수 NN (2≤N≤1052 \le N \le 10^5)이 주어진다. 다음 NN개의 줄에는 각각 두 정수 XiX_i (1≤Xi≤81 \le X_i \le 8)와 AiA_i (1≤Ai≤1091 \le A_i \le 10^9)가 주어진다. XiX_i는 ii번째 조각의 유형이고, AiA_i는 그 조각에 적힌 수이다. 모든 AiA_i는 서로 다르다.

출력

퍼즐을 풀 수 없으면 한 줄에 -1을 출력한다. 풀 수 있으면 사전순으로 가장 작은 해에서 왼쪽부터 각 조각에 적힌 수를 차례대로 출력한다.

힌트

첫 번째 예제에는 가능한 해가 두 가지뿐이다(아래 그림 참고). 두 번째 해는 두 번째 조각에 적힌 수가 더 작으므로 사전순으로 가장 작은 해이다.

예제3

  1. 예제 1

    입력
    5
    1 5
    2 7
    2 3
    8 4
    6 1
    
    예상 출력
    1 3 7 5 4
    
  2. 예제 2

    입력
    3
    5 1
    7 2
    4 3
    
    예상 출력
    1 3 2
    
  3. 예제 3

    입력
    5
    2 5
    2 7
    2 3
    8 4
    6 1
    
    예상 출력
    -1