CF928B Chat
题目描述
有 $n$ 条信息,每次可以显示当前信息、前 $k$ 信息以及后 $k$ 条信息,如果当前信息以上或以下的信息数不足 $k$ ,则忽略不足。对于第 $i$ 个信息,可以通过其链接访问第 $a_i$ 个信息,可以访问当前信息的链接,但如果 $a_i=0$ 则不可访问。问最多可以访问多少条信息。
输入格式
输入共两行,第一行两个数 $n$ ($1 \le n \le 10^5$) , $k$ ($0 \le k \le n$) ,分别表示信息总数和可以访问到前信息数或后信息数。第二行 $n$ 个数,$a_i$ 表示链接指向的信息。保证 $a_i
输出格式
输出共一行,输出 $n$ 个数,第 $i$ 个数表示从第 $i$ 号信息出发可以访问的最多信息数。
#### 样例解释:
对于第一个样例 $i=6$ ,先读6号信息,在读2号,然后1号,之后就没有链接了。
对于第一个样例 $i=6$ ,先是5、6、7,然后4、5、6,最后2、3、4,之后就没有链接了。
说明/提示
Consider $ i=6 $ in sample case one. You will read message $ 6 $ , then $ 2 $ , then $ 1 $ and then there will be no link to go.
In the second sample case $ i=6 $ gives you messages $ 5,6,7 $ since $ k=1 $ , then $ 4,5,6 $ , then $ 2,3,4 $ and then the link sequence breaks. The number of distinct messages here is equal to $ 6 $ .