#P14839. [立陶宛2019]mokesciai-vyr逃税
[立陶宛2019]mokesciai-vyr逃税
题目描述
Just, Inc. 是一家大型国际公司,在不同国家拥有 个银行账户。这些账户由 条直接通道连接,使得任意一个账户都可以直接或通过中间账户向任意其他账户转账。
如果两个账户之间有直接通道,那么一次转账需要一个晚上才能完成。如果没有直接通道,转账就要经过中间账户,因此资金需要多天才能到达目的地。
外部税务局(External Revenue Service,简称 ERS)怀疑 Just 正在逃税,因此计划调查该公司名下的所有账户。调查过程如下:
-
第一天早晨,ERS 会调查 号账户:
- 如果该账户中有 吉美元(gigadollar),Just 必须立即缴税;
- 如果该账户中有 吉美元或更多,公司的 CEO 将被控伪造并被监禁。Just 无论如何都不会允许这种事发生;
- 如果该账户为空,那么在调查完该账户之后,Just 暂时还不需要缴税。
-
第一天晚上,Just 会沿每条通道向任意方向转移非负整数数量的吉美元。不过,Just 不能向当天早些时候刚被调查的账户转入或从该账户转出资金,即不能使用 号账户。
-
第二天早晨,ERS 会调查一个与上一天调查的账户 号通过直接通道相连的账户。该账户按照上面的规则处理。Just 不知道 ERS 会选择哪个账户。
-
第二天晚上,Just 会进行新的转账。与之前一样,当天刚被调查的账户不能被使用。
-
第三天及之后继续调查,直到 ERS 决定已经进行了足够多的调查。
Just 非常清楚调查流程。它计划每天在账户之间转账,使得资金尽可能晚地被发现,并且公司永远不会被控伪造。然而,Just 不知道 ERS 会选择哪些账户,也不知道调查会持续多少天,因此它必须为最坏情况做准备。
换句话说,Just 会安排转账,使得无论 ERS 如何行动,公司都不会被控伪造,并且第一次缴税的时间尽可能晚。
任务
第一天早晨,有 个不同账户中各有 吉美元,其余账户为空。
请编写程序,假设 Just 采用最优转账策略,求 Just 最早会在第几天第一次缴税。
输入格式
第一行包含两个整数 和 ,分别表示账户数量和初始时含有 吉美元的账户数量。
接下来 行,每行包含一个整数 。对于 , 表示账户 与账户 之间存在一条直接通道。
最后一行包含 个互不相同的整数,表示初始时含有 吉美元的账户编号。
输出格式
输出一个整数,表示 Just 第一次必须缴税的日期编号。
样例 1
输入
7 2
1
2
3
3
5
6
3 4
输出
5
样例解释

展示样例 1 中从第一天早晨到第五天早晨,ERS 依次检查账户以及 Just 如何转移资金的过程。
如果在第四天晚上 Just 把 吉美元转到 号账户,那么第五天早晨 ERS 会发现 号账户为空,但第六天会发现某个账户中有 吉美元,于是 Just 将被控伪造。
样例 2
输入
11 3
1
2
3
4
3
6
7
8
9
10
3 4 5
输出
5
样例解释
如果 Just 将 吉美元从 号账户转到 号账户,钱只会在第二天晚上到达目的账户。然而,第三天早晨 ERS 就会检查 号账户并发现这笔钱。因此 Just 会把 吉美元留在 号账户,ERS 将在第五天早晨发现它。
样例 3
输入
4 3
1
2
3
2 3 4
输出
2
样例解释
如果 Just 试图在第二天早晨推迟缴税,它之后将会被控伪造。

展示样例 3 中一种错误策略,说明该策略虽然试图推迟缴税,但最终会导致账户中出现 吉美元而被控伪造。后期可在此处补入原题图。
数据范围与子任务
对所有测试数据均满足:
| 子任务 | 分值 | 额外限制 |
|---|---|---|
| 1 | 10 | |
| 2 | 22 | |
| 3 | 39 | |
| 4 | 29 | 无额外限制 |