code
查看原帖
code
1235165
xujingran楼主2025/1/22 13:08
#include<iostream>
#include<cmath>
using namespace std;
const int N = 10e5+10;
int a[N];
int n,m;

bool check(int len)//检测是否可以分割 
{
	int sum = 0;
	for(int i = 0; i < n ; i++)
	{
		sum+=a[i]/len;
	}
	if(sum >= m) return true;
	return false;
}


int main()
{
	cin >> n >> m;
	int ma = -1;
	long long int sum = 0;
	for(int i = 0; i < n ; i++)
	{
		cin >> a[i];
		sum+=a[i];
		ma = max(a[i],ma);
	}
	if(sum < m)
	{
		cout << 0;
		return 0;
	}
	int l = 1,r = ma;
	while(l < r)
	{
		int mid = (l + r + 1)  >> 1;
		if(check(mid)) l = mid;
		else r = mid -1;
	}
	
	cout << l;
}
2025/1/22 13:08
加载中...