#P2988. [USACO10MAR] Test Taking S

[USACO10MAR] Test Taking S

说明

农夫约翰需要参加一年一度的农民资格考试。考试很简单,只有 NN 道判断题(1N1061 \le N \le 10^6)。然而约翰去年考试却“杯具”了,贝茜希望今年能帮帮他。

贝茜得到可靠的小道消息,答案为 true 的题目数量一定是 t1,t2,t3,,tKt_1, t_2, t_3, \dots, t_K 中的一个(0tiN0 \le t_i \le N0K1040 \le K \le 10^4)。但具体是哪几道题的答案为 true,她完全不知道。

约翰想要知道,在认真研究了这些内部消息后(虽然不能确定任何一道题的具体答案),他保证能获得的最高的分数是多少?

为了说明贝茜的想法,考虑 N=6N = 6 的一次考试,贝茜知道答案为 true 的题的数量可能是 0 或者 3

约翰可以这样制定策略:

  • 如果约翰全部答 false
    • 当实际有 0 道题的正确答案是 true 时,约翰答对 6 题;
    • 当实际有 3 道题的正确答案是 true 时,约翰答对 3 题。

因此,只要约翰全部答 false,那么至少一定能答对 3 题,尽管他不知道每道题的确切答案。

输入格式

  • 第一行:两个整数 NNKK
  • 第二行到第 K+1K+1 行:每行一个整数 tit_i

输出格式

  • 一行:一个整数,表示约翰采用最优策略时,保证能获得的最高分数
6 2 
0 
3 

3 

提示

翻译提供: @fan404