#HK5117. 「JOISC 2013 Day2」间谍

「JOISC 2013 Day2」间谍

题目描述

题目译自 JOISC 2013 Day2 T3 「スパイ

你听说过 Just Odd Inventions 公司吗?这家公司的业务是进行「只是有点奇特的发明」(just odd inventions),我们简称它为 JOI 公司。

另外,你知道 Incredibly Odd Inventions 公司吗?这家公司的业务是进行「极其奇特的发明」(incredibly odd inventions),我们简称它为 IOI 公司。

JOI 公司和 IOI 公司各有 NN 名员工。JOI 公司的员工分别命名为 j1,j2,,jNj_{1}, j_{2}, \cdots, j_{N},IOI 公司的员工分别命名为 i1,i2,,iNi_{1}, i_{2}, \cdots, i_{N}。两家公司各有一名员工是公司的总裁,除总裁外,每名员工都有且仅有一名直接上司(来自同公司)。

图 1:JOI 和 IOI 的组织结构示例。从代表员工的圆圈中伸出的箭头指向该员工的直接下属。

IOI 公司总是通过窃取 JOI 公司的研究项目信息来完成他们的“极其奇特的发明”。目前,JOI 公司启动了 MM 个研究项目,命名为 r1,r2,,rMr_{1}, r_{2}, \cdots, r_{M};相应地,IOI 公司也启动了 MM 个间谍项目,命名为 s1,s2,,sMs_{1}, s_{2}, \cdots, s_{M}。IOI 公司的间谍项目 sbs_{b} 专门针对 JOI 公司的研究项目 rbr_{b} 进行信息窃取。

两家公司在项目分配员工的方式相同。每个项目指定一名领导,领导会向其所有直接下属传达命令,收到命令的员工再向自己的所有直接下属继续传达命令。以此类推,领导及其所有收到命令的员工都属于该项目,其他员工则不属于该项目。

项目 领导者 员工 项目 领导者 员工
研究项目 r1r_{1} j1j_{1} j1,j2,j3j_{1}, j_{2}, j_{3} 间谍计划 s1s_{1} i1i_{1} i1i_{1}
研究项目 r2r_{2} j2j_{2} j2,j3j_{2}, j_{3} 间谍计划 s2s_{2} i1i_{1} i1i_{1}
研究项目 r3r_{3} j2j_{2} j2,j3j_{2}, j_{3} 间谍计划 s3s_{3} i3i_{3} i3i_{3}
研究项目 r4r_{4} j3j_{3} j3j_{3} 间谍计划 s4s_{4} i2i_{2} i1,i2,i3i_{1}, i_{2}, i_{3}
图 2:图 1 中 JOI 和 IOI 的项目示例

IOI 公司的员工 iai_{a} 会从 JOI 公司的员工 jaj_{a} 处窃取信息。如果 IOI 公司的员工 iai_{a} 属于间谍项目 sbs_{b},且 JOI 公司的员工 jaj_{a} 属于研究项目 rbr_{b},则该员工在该间谍项目中成功完成间谍活动。两家公司的员工可能同时属于多个项目,IOI 公司的员工也可能在多个间谍项目中成功完成间谍活动。

给定 JOI 公司和 IOI 公司的员工信息及项目信息,你需要编写一个程序,计算 IOI 公司的每名员工在多少个间谍项目中成功完成了间谍活动。

输入格式

从标准输入中读取以下数据:

  • 第一行包含两个整数 N,MN, M,用空格分隔,表示 JOI 公司和 IOI 公司各有 NN 名员工,研究项目和间谍项目各有 MM 个。
  • 接下来 NN 行中,第 aa (1aN)(1 \leq a \leq N) 行包含两个整数 Pa,QaP_{a}, Q_{a} (0PaN,0QaN)(0 \leq P_{a} \leq N, 0 \leq Q_{a} \leq N),用空格分隔,表示 JOI 公司的员工 jaj_{a} 是员工 jPaj_{P_{a}} 的直接下属,IOI 公司的员工 iai_{a} 是员工 iQai_{Q_{a}} 的直接下属。若 Pa=0P_{a}=0,则员工 jaj_{a} 为 JOI 公司总裁;若 Qa=0Q_{a}=0,则员工 iai_{a} 为 IOI 公司总裁。
  • 接下来 MM 行中,第 bb (1bM)(1 \leq b \leq M) 行包含两个整数 Rb,SbR_{b}, S_{b} (1RbN,1SbN)(1 \leq R_{b} \leq N, 1 \leq S_{b} \leq N),用空格分隔,表示研究项目 rbr_{b} 的领导为员工 jRbj_{R_{b}},间谍项目 sbs_{b} 的领导为员工 iSbi_{S_{b}}

输出格式

在标准输出中输出 NN 行,第 aa (1aN)(1 \leq a \leq N) 行输出一个整数,表示 IOI 公司的员工 iai_{a} 在多少个间谍项目中成功完成了间谍活动。

3 4
0 2
1 0
2 2
1 1
2 1
2 3
3 2

1
0
2

此输入输出对应问题描述中的示例。在此情况下:

  • 属于间谍项目 s1,s2,s4s_{1}, s_{2}, s_{4} 的员工 i1i_{1},由于员工 j1j_{1} 属于研究项目 r1r_{1},因此在间谍项目 s1s_{1} 中成功完成间谍活动。
  • 属于间谍项目 s4s_{4} 的员工 i2i_{2},由于员工 j2j_{2} 不属于研究项目 r4r_{4},因此在任何间谍项目中均未成功完成间谍活动。
  • 属于间谍项目 s3,s4s_{3}, s_{4} 的员工 i3i_{3},由于员工 j3j_{3} 属于研究项目 r3,r4r_{3}, r_{4},因此在间谍项目 s3,s4s_{3}, s_{4} 中成功完成间谍活动。

数据范围与提示

对于所有输入数据,满足:

  • 1N20001 \leq N \leq 2000
  • 1M5000001 \leq M \leq 500000

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 1010 N200N \leq 200, M200M \leq 200
22 2020 M2000M \leq 2000
33 7070 无附加限制