#P15262. [USACO26JAN2] The Chase G

[USACO26JAN2] The Chase G

说明

Bessie 正在试图躲避农民们。农民们拥有 NN2N51052 \le N \le 5 \cdot 10^5)个农场,其中从第 ii 个农场到第 aia_i 个农场有一条单向道路(1iN1 \le i \le Naiia_i \neq i)。共有 FF1FN1 \le F \le N)个农民,第 ii 个农民最初驻扎在农场 sis_i1siN1 \le s_i \le N,所有 sis_i 互不相同)。在每个时间步,每个农民都会从他们当前所在的农场出发,沿着道路移动到下一个农场。如果 Bessie 在任何时候与任意一个农民位于同一个农场,她就会被抓住。

假设 Bessie 从某个农场 bb 出发。在每个时间步,她有两个选择:她可以选择休息(停留在当前农场),或者选择沿着道路移动到下一个农场。如果她选择移动,她将与农民们同时移动。Bessie 的移动策略必须确保她在有限的时间步内永远不会被抓住。

对于每个起始农场 bb1bN1 \le b \le N),求如果 Bessie 从农场 bb 出发,她最多可以选择休息多少次。

输入格式

第一行包含两个整数 NNFF,分别表示农场的数量和农民的数量。

第二行包含 NN 个整数 a1aNa_1 \ldots a_N,表示从每个农场出发的单向道路通往的农场。

第三行包含 FF 个整数 s1sFs_1 \ldots s_F,表示每个农民的起始位置。

输出格式

输出 NN 行,其中第 bb 行包含一个整数,表示如果 Bessie 从农场 bb 出发,她最多可以选择休息的次数。如果 Bessie 无法确保在有限的时间步内永远不会被抓住,则输出 1-1。如果 Bessie 可以无限次休息,则输出 2-2

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

提示

  • 农场 1:如果 Bessie 从一个有农民的农场出发,那么她立即就会被抓住,因此输出 1-1
  • 农场 2:Bessie 必须在每个时间步都选择移动,以避免被从农场 11 出发的农民抓住。
  • 农场 3-4:Bessie 可以无限次休息而不会被抓住。

评分

  • 输入 2:N50N \le 50
  • 输入 3-10:N2000N \le 2000
  • 输入 11-20:无额外约束。

翻译由 DeepSeek 完成