测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A11456. Berland Army

编程题 普及/提高-

题目描述

There are $n$ military men in the Berland army. Some of them have given orders to other military men by now. Given $m$ pairs ( $x_{i}$ , $y_{i}$ ), meaning that the military man $x_{i}$ gave the $i$ -th order to another military man $y_{i}$ .

It is time for reform! The Berland Ministry of Defence plans to introduce ranks in the Berland army. Each military man should be assigned a rank — integer number between $1$ and $k$ , inclusive. Some of them have been already assigned a rank, but the rest of them should get a rank soon.

Help the ministry to assign ranks to the rest of the army so that:

- for each of $m$ orders it is true that the rank of a person giving the order (military man $x_{i}$ ) is strictly greater than the rank of a person receiving the order (military man $y_{i}$ );
- for each rank from $1$ to $k$ there is at least one military man with this rank.

输入格式

The first line contains three integers $n$ , $m$ and $k$ ( $1<=n<=2·10^{5}$ , $0<=m<=2·10^{5}$ , $1<=k<=2·10^{5}$ ) — number of military men in the Berland army, number of orders and number of ranks.

The second line contains $n$ integers $r_{1},r_{2},...,r_{n}$ , where $r_{i}>0$ (in this case $1<=r_{i}<=k$ ) means that the $i$ -th military man has been already assigned the rank $r_{i}$ ; $r_{i}=0$ means the $i$ -th military man doesn't have a rank yet.

The following $m$ lines contain orders one per line. Each order is described with a line containing two integers $x_{i}$ , $y_{i}$ ( $1<=x_{i},y_{i}<=n$ , $x_{i}≠y_{i}$ ). This line means that the $i$ -th order was given by the military man $x_{i}$ to the military man $y_{i}$ . For each pair $(x,y)$ of military men there could be several orders from $x$ to $y$ .

输出格式

Print $n$ integers, where the $i$ -th number is the rank of the $i$ -th military man. If there are many solutions, print any of them.

If there is no solution, print the only number -1.

输入输出样例

输入 #1
5 3 3
0 3 0 0 2
2 4
3 4
3 5
输出 #1
1 3 3 2 2 
输入 #2
7 6 5
0 4 5 4 1 0 0
6 1
3 6
3 1
7 5
7 1
7 4
输出 #2
2 4 5 4 1 3 5 
输入 #3
2 2 2
2 1
1 2
2 1
输出 #3
-1
上一题 去做题 下一题