为什么死循环了P5119,谢谢
  • 板块题目总版
  • 楼主华悦泽
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/10/9 22:02
  • 上次更新2023/11/4 04:13:58
查看原帖
为什么死循环了P5119,谢谢
549617
华悦泽楼主2021/10/9 22:02
#include <bits/stdc++.h>
using namespace std;
int n,m,c;
int a[100005];
bool check(int x)
{
	int cnt=1;
	int lst=a[1];
	int cntcow=1;
	for(int i=2;i<=n;i++)
	{
		cntcow++;
		if(a[i]-lst>x||cntcow>c)
		{   cnt++;
			cntcow=1;
			lst=a[i];
			if(cnt>m) return 0;
		}
	}
	return 1;
}
int main()
{
    cin>>n>>m>>c;
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+1+n);
    int l=0;
    int r=a[n]-a[1];
    while(l<=r)
{
	int mid=(l+r)>>1;
	if(check(mid)) l=mid-1;
	else r=mid+1;
}
    return 0;
}
2021/10/9 22:02
加载中...