1 条题解

  • 0
    @ 2026-8-19 15:21:03
    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1e5 + 10;
    int n, m;
    int a[N];
    int l;
    
    bool check(int x) {
    	int ans = 0;
    	for (int i = 1; i <= n; i++)
    		ans += a[i] / x;
    	return ans >= m;
    }
    
    int main() {
    	cin >> n >> m;
    	for (int i = 1; i <= n; i++)
    		cin >> a[i];
    	int l = 1, r  = 1e9, ans = 0;
    	while (l <= r) {
    		int mid = (l + r) / 2;
    		if (check(mid))
    			ans = mid, l = mid + 1;
    		else
    			r = mid - 1;
    	}
    	cout << ans;
    	return 0;
    }
    
    

    信息

    ID
    6561
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    322
    已通过
    68
    上传者