欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF257A.Sockets
Sockets
题目描述
Vasya 有许多需要用电的设备。他有 个排插,第 个排插有 个插口。
总共有 个设备,以及 个可以直接插电的插座,他可以将设备或排插直接插入这些插座。当然,他也可以将一个排插插到另一个排插上。若某个设备(或排插)能够通过 个插座间接或直接连到电源上,则认为它已经接通电源。
请问,Vasya 至少需要用多少个排插,才能让所有设备都通电?注意,每个设备或排插插电都需要占用一个插口,并且每个插口只能插一个设备或排插。
如果即使用完所有排插也无法让全部设备通电,请输出 。
输入格式
第一行包含三个整数 、、(),分别表示排插的数量、设备的数量和可直接插电的插座数量。
第二行包含 个用空格分隔的整数 (),其中 表示第 个排插上的插口数。
输出格式
输出一个整数,表示使所有设备通电所需的最少排插数量。如果即使使用所有排插也无法满足要求,则输出 。
说明/提示
在第一个样例中,他可以将第一个排插直接插入电源。插入后,他总共有 5 个可用插口可以插设备(此排插上的 3 个插口,加上剩余的 2 个可直接插电的插座),因此只需一个排插即可为 5 个设备供电。
在第二个样例中,一种最优做法是直接将第二个排插插上,然后再将第四个排插插入第二个排插中的一个插口。这样恰好有 7 个可用插口来插设备:一个直接插电,第二个排插上的 2 个插口,第四个排插上的 4 个插口。如果只用一个排插,无论如何都无法连上 7 个设备。
由 ChatGPT 5 翻译
样例
3 5 3
3 1 2
1
4 7 2
3 3 2 4
2
5 5 1
1 3 1 2 1
-1
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |