#248. 广告

广告

题目描述

众所周知,现在的软件基本都有开屏广告。最近dash发现手机里软件的广告功能又升级了,只需轻轻“摇一摇”,就会跳转到另一个软件。这让dash很是苦恼,哪怕他没有摇动手机,广告都会自动打开另一个软件。

现在,dash的手机上装有 nn 个软件,其中的 mm 个软件有广告。具体来说,只要打开这些软件,就会弹出来广告。假设第 ii 个软件有广告,在广告播放结束后,便会自动跳转到第 pip_i 个软件。接下来,如果这个软件也有广告,无论先前是否打开过,它都会播放广告,并在广告结束后打开其它对应的软件;否则将会无事发生。

这些软件上疯狂的广告甚至可能停不下来。dash的忍耐值为 kk,也就是说,当他打开一个具有广告的软件,接下来连续跳转达到 kk 次后,dash就会非常愤怒。为了能有愉快的一天,dash决定删除一些软件,使得他点开任何一个软件,广告不会连续跳转达到 kk 次。

请你告诉dash至少要删除几个软件。保证每个软件要么没有广告,要么其广告播放完后会跳转到某一个其它的软件。

输入格式

第一行共三个整数 nnmmkk,依次表示总软件数、拥有广告的软件数以及dash的忍耐值;

接下来 mm 行,每行两个整数 iipip_i,表示第 ii 个软件拥有广告,在其播放完后会自动跳转到第 pip_i 个软件。

输出格式

仅一行一个数,表示最少需要删除的软件数。

样例

6 4 2
1 2
3 2
4 5
5 6
1

解释#1

66 个软件中广告的跳转关系如下图。

image-20231112161327076

由于dash的忍耐值为 22,而打开第 44 个软件后,软件打开顺序为 4564 → 5 → 6,广告跳转次数为 22,达到了dash的忍耐值。所以删除第 44 个软件即可。

6 6 2
1 4
2 1
4 2
3 2
5 4
6 5
2

解释#2

66 个软件中广告的跳转关系如下图。

image-20231112161659834

图中即为符合答案的一种删除方案。可以证明最少需要删除的软件数一定为 22

数据范围

对于所有数据:1mn3×1051 ≤ m ≤ n ≤ 3 × 10^51k1001 ≤ k ≤ 1001i,pin1 ≤ i, p_i ≤ nipii \ne p_i