40分求助
查看原帖
40分求助
654763
smallpeople楼主2023/11/7 19:38

大佬帮忙看看是哪错了吧,调不出来(40分蒟蒻)

#include<bits/stdc++.h>
using namespace std;

int ll,n,m,js = 0,bk = 0,now = 0;
int sto[50005]; 
int head = 1,tail;

void find(int l,int r)
{
	js = 0;
	now = 0;
	int mid = (r + l) >> 1;
	
	for(int i = 1;i <= n + 1;i ++)
	{
		if((sto[i] - sto[now]) < mid)
			js ++;
		else	
			now = i;
	}

	if(js > m) find(l,mid - 1);
	if(bk == 1)return;
	if(js < m) find(mid + 1,r);
	if(bk == 1)return;
	else
	{
		cout<<mid<<endl;
		bk = 1;
		return;
	}
}

int main()
{
	cin>>ll>>n>>m;
	if(n == 0)
	{
		cout<<ll<<endl;
		return 0;
	}
	sto[n + 1] = ll;
	for(int i = 1;i <= n;i ++)
		cin>>sto[i];
	find(1,ll);
	return 0;
}
2023/11/7 19:38
加载中...