#abc175d. [abc175_d]Moving Piece

[abc175_d]Moving Piece

问题描述

高桥要在一个编号为1,2,,N1, 2, \cdots, N的方格阵上玩一个游戏。第ii个方格上写有整数CiC_i。他还给出了一个1,2,,N1, 2, \cdots, N的排列:P1,P2,,PNP_1, P_2, \cdots, P_N

现在,他将选择一个方格,并把棋子放在那个方格上。然后,他将在11KK之间的某个次数内进行以下动作:

  • 在一次移动中,如果棋子现在在1iN1\leq i\leq N的方格上,将其移动到方格PiP_i。在此过程中,他的得分增加CPiC_{P_i}

通过找出游戏结束时可能得到的最大分数来帮助他。(游戏开始时,得分为00。)

约束条件

  • 2N50002\leq N\leq 5000
  • 1K1091\leq K\leq 10^9
  • 1PiN1\leq P_i\leq N
  • PiiP_i\neq i
  • P1,P2,,PNP_1, P_2, \cdots, P_N互不相同。
  • \-109Ci109\-10^9\leq C_i\leq 10^9
  • 输入中的所有值均为整数。

输入

输入以标准输入给出,格式如下:

NN KK P1P_1 P2P_2 \cdots PNP_N C1C_1 C2C_2 \cdots CNC_N

输出

输出游戏结束时可能得到的最大分数。


样例输入1

5 2
2 4 5 1 3
3 4 -10 -8 8

样例输出1

8

当我们从任意一个方格开始并进行最多两次移动时,我们有以下几种选择:

  • 如果我们从方格11开始,进行一次移动会将棋子移到方格22上,此时得分为44。再进行一次移动将棋子移到方格44上,得分为4+(8)=44 + (-8) = -4
  • 如果我们从方格22开始,进行一次移动会将棋子移到方格44上,此时得分为\-8\-8。再进行一次移动将棋子移到方格11上,得分为\-8+3=5\-8 + 3 = -5
  • 如果我们从方格33开始,进行一次移动会将棋子移到方格55上,此时得分为88。再进行一次移动将棋子移到方格33上,得分为8+(10)=28 + (-10) = -2
  • 如果我们从方格44开始,进行一次移动会将棋子移到方格11上,此时得分为33。再进行一次移动将棋子移到方格22上,得分为3+4=73 + 4 = 7
  • 如果我们从方格55开始,进行一次移动会将棋子移到方格33上,此时得分为\-10\-10。再进行一次移动将棋子移到方格55上,得分为\-10+8=2\-10 + 8 = -2

能够达到的最大得分是88


样例输入2

2 3
2 1
10 -7

样例输出2

13

样例输入3

3 3
3 1 2
-1000 -2000 -3000

样例输出3

-1000

我们至少要进行一次移动才能得分。


样例输入4

10 58
9 1 6 7 8 4 3 2 10 5
695279662 988782657 -119067776 382975538 -151885171 -177220596 -169777795 37619092 389386780 980092719

样例输出4

29507023469

答案的绝对值可能非常大。