欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1195A.Drinks Choosing
Drinks Choosing
题目描述
夏季信息学学校的老学员们还记得以前的夏令营,在晚餐时每个学生都能得到自己喜欢的饮料。或者,这个故事其实更复杂?
现在有 个学生住在一栋楼里,每个学生最喜欢的饮料 已知。也就是说,你知道 个整数 ,其中 ()表示第 个学生喜欢的饮料类型。饮料类型编号为 到 。
饮料套餐的数量是无限的。每份套餐包含两份相同类型的饮料。换句话说,总共有 种套餐,第 种套餐包含两份第 种饮料。每种套餐的数量都是无限的。
你知道,为了让所有学生都能恰好得到一份饮料,学生们会拿到最少数量的套餐。显然,套餐的数量恰好是 ,其中 表示对 向上取整。
在学生们拿到套餐后,他们会自行分配饮料:每个学生恰好得到一份饮料。注意,如果 是奇数,则会剩下一份饮料没有人喝,这份饮料会被老师喝掉。
如果选择 份套餐最优地,并且学生们最优地分配饮料,最多有多少学生能喝到自己最喜欢的饮料?
输入格式
输入的第一行包含两个整数 和 (),分别表示学生人数和饮料种类数。
接下来的 行,每行一个整数,表示每个学生喜欢的饮料类型,第 行的整数是 ,。
输出格式
输出一个整数,表示最多有多少个学生能喝到自己喜欢的饮料。
说明/提示
在第一个样例中,学生们可以选择三份饮料套餐,分别是 、 和 (即两份类型为 的套餐和一份类型为 的套餐,得到的饮料份数为 )。这样,除了第二个学生外,其他学生都能喝到自己喜欢的饮料。
另一种可行的方案是选择 、 和 三种套餐,这样得到的饮料份数为 。此时,除了一个学生外,其他学生都能喝到自己喜欢的饮料。唯一喝不到喜欢饮料的学生是 的某个学生(即第一个、第三个或第四个)。
由 ChatGPT 4.1 翻译
样例
5 3
1
3
1
1
2
4
10 3
2
1
3
2
3
3
1
3
1
2
9
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |