#L6584. 「ICPC World Finals 2019」Hobson 的火车

「ICPC World Finals 2019」Hobson 的火车

题目描述

Hobson 先生从管理马厩的工作中退休后,投资于一种更加现代的交通方式:火车。

他已经修建了一个包含nn个火车站的铁路网。然而,他兑现了让乘客摆脱选择困难症的承诺:对于每个站点,乘客只能乘坐火车前往一个站点,别无其它选择。

这样的一段旅程被称作一趟。要注意这是单向的旅程,可能无法再回到出发点。

Hobson 同样也只提供一种车票,允许乘客一次旅行的距离不超过kk趟。在每个站点的出口会有一个自动读票机(只有一个,所以乘客就不用纠结于要用哪个)。机器会检查从始发站到到达站的距离是否不超过kk趟。

每个读票机必须编入一个合法始发站列表,但是列表消耗的存储空间越多,机器就越贵。

请帮助 Hobson 先生确定:对于每个站点AA,能够在最多kk趟的旅程中到达AA的站点个数(包含AA本身)。

上图为样例输入11对应的示意图。每个圆圈代表了一个站点,圆圈旁边的数字为当k=2k=2时需要编入读票机的站点编号。

输入格式

第一行包含两个整数n,kn, knn为站点个数,kk为一张票允许旅行的最多趟数。 接下来nn行,第ii行包含一个整数did_i,表示第ii个站点经过一趟到达的站点。

输出格式

输出nn行,第ii行输出能在kk趟内到达站点ii的站点数目。

样例11

输入: 66 22 22 33 44 55 44 33

输出: 11 22 44 55 33 11

样例22

输入: 55 33 22 33 11 55 44

输出: 33 33 33 22 22

数据范围与提示

2n51052\le n\le 5\cdot 10^5 1kn11\le k\le n-1 1din1\le d_i\le ndiid_i\neq i

在不侵犯原题版权的情况下,本题面中文翻译基于知识共享署名-非商业性使用-相同方式共享4.04.0国际许可协议发布,注明出处时需指向本题链接。