#include<bits/stdc++.h>
using namespace std;
int a[100010];
int main(){
	int n,m;
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	sort(a+1,a+n+1);
	int l=a[1],r=a[n];
	while(l<r){
		int cnt=1,k=a[1];
		int mid=(l+r+1)/2;
		for(int i=1;i<=n;i++){
			if(a[i]-k>=mid){
				cnt++;
				k=a[i];
			}
		}
		if(cnt>=m){
			l=mid;
		}
		else{
			r=mid-1;
		}
	}	
	cout<<l;
	return 0;
}

1 条评论

  • @ 2025-10-4 12:16:45
    #include <bits/stdc++.h>
    using namespace std;
    int a[100010];
    int main()
    {
    	int n, x, y;
    	cin >> n;
    	for(int i = 1; i <= n; i++)
    	{
    		cin >> a[i];
    		a[i]+=a[i-1];
    	}
    	cin >> x >> y;
    	for(int i = 1; i <= n; i++)
    	{
    		int d=a[i-1], d2=a[n]-a[i-1];
    		if(d2>=x&&d2<=y&&d>=x&&d<=y) 
    		{
    			cout<<i;
    			return 0;
    		}
    	}
    	cout<<0;
    	return 0;
    }
    
    
    
    • 1

    信息

    ID
    116
    时间
    1000ms
    内存
    256MiB
    难度
    8
    标签
    递交数
    56
    已通过
    9
    上传者