题目描述
一个文件 file 都需要在一个包含很多文件 dir1,dir2,⋯,dirj 的目录中,这个文件的 absolute file path 为 /dir1/dir2/⋯/dirj/file,根目录用 / 表示,每一个放在根目录下的文件的 absolute file path 的形式为 /file。
符号链接指向一个已被命名的目录,可以看作一个快捷方式,他可以放置在任意目录下,注意,符号链接不能指向文件。比如,我们在 / 下放一个指向 / 的符号链接 hello,那么,/dir/file,/hello/dir/file,/hello/hello/dir/dile 都指向同一个文件 file。另比如,我们在 /dir 下放一个指向 / 的符号链接 hi,那么,/dir/file,/dir/hi/dir/file,/dir/hi/dir/hi/dir/file 都指向同一个文件 file。符号链接指向上一层,下一层,甚至同层都可以,但是不允许 ./,../,// 之类的操作。
现在想问,是否能通过引入一个长为 s 的符号链接使得找到一个文件的 absolute file path 长度恰好为 k?
输入格式
第一行三个整数 n,m,k 代表除根目录之外的目录数,文件数和要求等于的路径长度。
第二行一个整数 s 代表符号链接长。
接下来 n 行每行两个整数 pi,li 描述一个目录,这个目录编号为 li,父目录编号为 pi。
接下来 m 行每行两个整数 pj,lj,描述一个文件,这个文件的长度为 lj,父目录编号为 pj。
输出格式
m 行每行一个字符串代表是否能通过引入一个长为 s 的符号链接使得找到编号为 j 的文件的 absolute file path 长度恰好为 k,如果是的话输出 YES,否则输出 NO。
2 4 22
2
0 1
1 5
2 13
2 10
1 4
0 7
YES
YES
YES
NO
提示
样例 1 解释
假设符号链接名字为 LL,目录名字为 a,bbbbb,文件名字为 ccccccccccccc,dddddddddd,eee,fffffff,根目录下包含目录 a 和文件 fffffff,目录 a 下包含目录 bbbbb 和文件 eee,目录 bbbbb 包含文件 ccccccccccccc 和 dddddddddd。下面是形象化的表述:
/
|-- a
| |-- bbbbb
| | |-- ccccccccccccc
| | +-- dddddddddd
| +-- eeee
+-- fffffff
- 对于第 1 个文件,满足条件的路径为 /a/bbbbb/ccccccccccccc。
- 对于第 2 个文件,满足条件的路径为 /a/LL/bbbbb/dddddddddd。
- 对于第 3 个文件,满足条件的路径为 /a/LL/a/LL/a/LL/a/eeee。
- 对于第 4 个文件,无满足条件的路径。
数据规模与约定
本题采用捆绑测试。
- Subtask 1(33 pts):n,m≤500。
- Subtask 2(33 pts):n,m≤3×103,符号链接最多被调用一次。
- Subtask 3(34 pts):无特殊限制。
对于 100% 的数据,1≤k,s≤106,1≤m,n≤3×103。
说明
翻译自 BalticOI 2015 Day2 A File Paths。