#include<iostream>
using namespace std;
int main()
{
int n, k, len[10000], i, left, right, mid, num;
cout << "请输入原木的数目N和需要得到的小段的数目K : " << endl;
cin >> n >> k;
right = 0;
cout << "请输入各段原木的长度: " << endl;
for (i = 0; i < n; i++)
{
cin >> len[i];
if (right < len[i]) right = len[i];
}
right++;
left = 0;
while (left + 1 < right)
{
mid = (left + right) / 2;
num = 0;
for (i = 0; i < n; i++)
{
if (num >= k)
break;
num = num + len[i] / mid;
}
if (num >= k)
left = mid;
else
right = mid;
}
cout << "能够切割得到的小段的最大长度为" << left << endl;
return 0;
}
木材加工
最新推荐文章于 2022-02-20 21:01:04 发布