有 N 个好朋友,他们的编号为 1 \sim N,他们居住在同一个城市中,编号为 i 的好友居住在编号为 i 的小区中,今天是十一假期,他们决定一起驱车前往编号为 N 的好友家聚会。
车载导航地图中标注出了 N 个人居住小区的位置,以及小区之间 M 条双向道路。每个人(编号为 1 \sim N-1)将会以最短的路径,驱车前往编号为 N 的小区。
这 N 个小区中,共有 K 家连锁超市,一个小区中可能有多个超市。十一假期,所有的超市都会发放优惠券,不同的超市优惠券的额度有所不同。
对于编号为 i 的好友,他通过查询车载导航以及超市的优惠信息综合判断,如果满足如下条件,他就会到某个超市中购买一份美食带到 N 号小区和大家一起享用。
请编程计算出,对于编号为 1 \sim N-1 的每个好友,他们是否会购买美食带到 N 号小区。
第一行输入三个整数 N, M, K,分别表示好友数量、道路数量、超市数量。
接下来 M 行,每行输入三个整数 U_i, V_i, L_i,表示编号为 U_i 和 V_i 的小区之间有一条长度为 L_i 的道路。
再接下来 K 行,每行输入两个整数,表示一个超市所在的小区编号及其发放优惠的金额 V_j,同一个小区可能存在多个超市。
输出 N-1 行,第 i 行输出一个整数:如果编号为 i 的好友会去超市购买美食,请输出数字 1,否则输出数字 0。
4 5 1 1 4 10 2 1 20 4 2 4 2 3 7 4 3 2 2 7
0 1 0
5 6 2 1 2 4 2 3 3 3 5 6 1 4 2 4 5 8 2 5 10 2 5 4 3
1 1 0 1
8 14 3 1 2 2 2 3 3 3 8 5 1 4 6 4 5 4 5 8 7 2 6 8 6 7 3 7 8 6 1 5 12 3 6 9 2 4 10 4 7 11 5 7 8 2 5 5 3 7 6
1 1 0 1 1 1 1
【样例 4】
见选手目录下的 party/party4.in 与 party/party4.ans。
对于 10\% 的数据,满足 N,M \le 10,K=1。
对于另外 20\% 的数据,满足 N \le 400,M \le 800,K \le 25。
对于 100\% 的数据,满足 2 \le N \le 5 \times 10^4,1 \le M \le 10^5,1 \le K \le N,1 \le U_i, V_i \le N,1 \le L_i \le 10^4,每个超市发放的优惠券的金额 1 \le V_j \le 10^9。
测试数据保证该图为连通图。