#HK5277. 「UOI 2019 Stage 4 Day2」科扎克·武斯与糖果
「UOI 2019 Stage 4 Day2」科扎克·武斯与糖果
注意事项
在 LibreOJ 上,由于语言限制,目前只支持以下语言的提交:
- C++(标准为 C++ 14 及以上)
请在提交源代码前添加 #include "grader.h"。
题目描述
题目译自 Ukrainian Olympiads in Informatics 2019 Stage 4 Day2 T2. Козак Вус та цукерки
科扎克·武斯非常喜欢跳跃,也非常喜欢糖果。有一天,他来到了一条数轴上,数轴上的一些整数点位置有糖果(每个点最多只有一颗糖果)。武斯欣喜若狂,决定尽可能多地收集糖果。为此,他可以选择任意一个大于 的整数 作为跳跃长度,并选择一个起始位置 ( 是一个整数),然后以长度 进行跳跃,访问所有形如 的点,其中 是非负整数。每当武斯到达一个有糖果的点时,他会捡起那颗糖果(尽管这样做可能不太合适!)。
请帮助武斯尽可能多地收集糖果。
交互方式
你需要实现以下函数:
integer solve(integer n, integer g, array of integers m)
- —— 糖果的数量;
- —— 子任务编号;
- —— 糖果位置的数组;
- 该函数应返回一个整数,表示武斯能收集的最大糖果数量。
输入格式
第一行包含两个整数 和 ,分别表示糖果数量和子任务编号。
第二行包含 个整数 ,表示糖果所在的位置。保证所有 两两不同。
输出格式
输出一个整数,表示武斯能收集的最大糖果数量。
5 0
1 2 3 4 7
3
在第一个样例中,科扎克可以选择 ,并在位置 收集糖果。
7 0
1 2 10 4 7 3 13
5
在第二个样例中,科扎克可以选择 ,并在位置 收集糖果。
数据范围与提示
详细子任务附加限制及分值如下表所示:
| 子任务 | 分值 | 附加限制 |
|---|---|---|
| ; | ||
| ; | ||
| ; | ||
| ; | ||
| ; | ||
| 无附加限制 |