만드는 중입니다

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

배열 A 찾기

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

요약
B보다 사전순으로 뒤에 오면서 주어진 모든 쌍에 대해 A[i] < A[j]를 만족하는 사전순 가장 작은 배열 A를 구합니다.
난이도

보통10점 중 7점

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

문제

다음 조건을 만족하는 배열 A를 찾아보자.

  • 크기는 N이고, 2×1092 \times 10^9보다 작거나 같은 자연수로 이루어져 있다.
  • 크기가 N인 배열 B보다 사전 순으로 뒤에 온다.
  • M개의 (i,j)(i, j) 쌍마다 A[i]<A[j]A[i] < A[j]를 만족한다.

입력

첫째 줄에 배열의 크기 N과 쌍의 개수 M이 주어진다. 둘째 줄에는 B[1],B[2],…,B[N]B[1], B[2], \ldots, B[N]이 주어진다. 셋째 줄부터 M개의 줄에는 A[i]<A[j]A[i] < A[j]를 의미하는 i,ji, j가 주어진다.

출력

문제의 조건을 만족하는 배열 A 중에서 사전 순으로 가장 앞서는 것을 출력한다. 조건을 만족하는 배열이 없는 경우에는 -1을 출력한다.

제한

  • 1≤N≤100,0001 \le N \le 100{,}000
  • 0≤M≤100,0000 \le M \le 100{,}000
  • 1≤B[i]≤1091 \le B[i] \le 10^9
  • 1≤i,j≤N1 \le i, j \le N, i≠ji \ne j

예제4

  1. 예제 1

    입력
    3 2
    1 2 3
    2 1
    1 3
    
    예상 출력
    2 1 3
    
  2. 예제 2

    입력
    3 2
    1 2 3
    2 1
    1 2
    
    예상 출력
    -1
    
  3. 예제 3

    입력
    3 0
    1 2 3
    
    예상 출력
    1 2 4
    
  4. 예제 4

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