A7188 | 皓仔的手工课
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
皓仔在手工课上要把若干根绳子剪成等长的小段,用来做手链。
现在有 $n$ 根绳子,第 $i$ 根长度为 $a_i$。皓仔可以把一根绳子剪成若干段,每段长度都必须是同一个正整数 $L$(单位与 $a_i$ 相同),剪完后剩下不足 $L$ 的部分会被丢弃。
皓仔希望最终能得到至少 $k$ 段长度为 $L$ 的小绳段,并且让 $L$ 尽可能大。请你求出满足条件的最大 $L$。
如果无论 $L$ 取多少都无法得到 $k$ 段,则输出 $0$。
现在有 $n$ 根绳子,第 $i$ 根长度为 $a_i$。皓仔可以把一根绳子剪成若干段,每段长度都必须是同一个正整数 $L$(单位与 $a_i$ 相同),剪完后剩下不足 $L$ 的部分会被丢弃。
皓仔希望最终能得到至少 $k$ 段长度为 $L$ 的小绳段,并且让 $L$ 尽可能大。请你求出满足条件的最大 $L$。
如果无论 $L$ 取多少都无法得到 $k$ 段,则输出 $0$。
输入格式
第一行输入两个整数 $n,k$。
第二行输入 $n$ 个整数 $a_1,a_2,\dots,a_n$,表示每根绳子的长度。
第二行输入 $n$ 个整数 $a_1,a_2,\dots,a_n$,表示每根绳子的长度。
输出格式
输出一个整数,表示满足条件的最大长度 $L$;若不存在则输出 $0$。
输入输出样例
输入 #1
5 11 8 9 8 6 7
输出 #1
3
【数据范围】
对于所有测试数据保证: $3 \le n \le 100, 1 \le a_i , k\le 1000$。
【样例解释】
对于样例,当 $L=3$ 时,可剪出的段数为:
$8/3=2$ 段
$9/3=3$ 段
$8/3=2$ 段
$6/3=2$ 段
$7/3=2$ 段
总共 $2+3+2+2+2=11$ 段,满足至少 $k=11$ 段。
而当 $L=4$ 时,总段数为 $8/4+9/4+8/4+6/4+7/4=2+2+2+1+1=8$ 段,不满足要求。
因此最大可行长度为 $3$。
对于所有测试数据保证: $3 \le n \le 100, 1 \le a_i , k\le 1000$。
【样例解释】
对于样例,当 $L=3$ 时,可剪出的段数为:
$8/3=2$ 段
$9/3=3$ 段
$8/3=2$ 段
$6/3=2$ 段
$7/3=2$ 段
总共 $2+3+2+2+2=11$ 段,满足至少 $k=11$ 段。
而当 $L=4$ 时,总段数为 $8/4+9/4+8/4+6/4+7/4=2+2+2+1+1=8$ 段,不满足要求。
因此最大可行长度为 $3$。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?