UOJ Logo Universal Online Judge

UOJ

附件下载 统计

超级管理员 Skip 蚤想把自己的 Rating 改成 8000。同时,他需要换一个特别长的账号名,这样在 Rating List 上它的名字就会特别显眼。

而且,如果在搜索其它跳蚤时顺便搜索到它,便能提高他的知名度。

UOJ 中的账号名在数据库中由给定一棵有 l 个节点的 trie 树(以 1 为根)存储。

对于树上的某个点 i,定义 ui 为从根节点到 i 的路径上的字符从浅到深顺次连接得到的字符串(u1=)。

ui1<il) 同时是跳蚤的账号名。

超级管理员 Skip 蚤想用如下方式生成自己的账号名 T

给出若干字符串 s1,s2,,sn,令 T=sa1+sa2++sam

现在,Skip 蚤想知道,对于每一个账号名 ui(1<il),在自己的账号名 T 中出现的次数 ansi

输入格式

输入第一行包含四个正整数 l,n,m,w

接下来一行包含一个 l1 个正整数,分别表示 c2,c3,,cl,即 trie 树上每个点到父亲的边上的字符。

接下来一行包含 l1 个正整数,分别表示 fa2,fa3,,fal,即 trie 树上每个点的父亲。

接下来 n 行,每行首先有一个正整数表示 |si|,然后 |si| 个正整数给出 si

接下来一行 m 个正整数,分别表示 a1,a2,,am

输出格式

输出一行 l1 个非负整数,分别表示 ans2,ans3,,ansl

样例一

input

7 3 6 2
1 2 2 1 1 1
1 1 2 2 3 4
3 1 1 1
4 1 2 1 2
3 2 2 1
1 3 2 3 1 1

output

13 6 3 9 3 1

限制与约定

S=i=1n|si|

对于所有数据,保证 1l105,1n100,1m106,1S3106,1fail,1w4×106,所有输入的字符 [1,w]

保证输入的 fa 构成一棵以 1 为根的树。

子任务编号 l m S w trie树形态 分值
1 2000 2000 2000 4×106 - 7
2 105 106 3×106 fai=i1(1<in) 14
3 2000 26 - 17
4 105 5×105 29
5 3×106 4×106 33

时间限制3s

空间限制1GB

下载

样例数据下载