Subtask 1 AC,其余 RE *10+WA *1
查看原帖
Subtask 1 AC,其余 RE *10+WA *1
875806
liupan2010楼主2023/3/18 21:43

rt.

参考第一篇题解写的。

#include<bits/stdc++.h>
using namespace std;
int l,m,n,i,lft,rt,mid,stone[500005];
bool check(int mid)
{
	int move=0,num=0,now=0;
	while(num<n+1)
	{
		i++;
		if(stone[i]-stone[now]<mid)
			move++;
		else
			now=i;
	}
	return move<=mid;
}
int main()
{
	cin>>l>>m>>n;
	for(i=1;i<=n;i++)
	{
		cin>>stone[i];
		rt+=stone[i];
		lft=max(lft,stone[i]);
	}
	while(lft<rt)
	{
		mid=(lft+rt)/2;
		if(check(mid))
			lft=mid+1;
		else
			rt=mid-1;
	}
	cout<<lft;
	return 0;
}
2023/3/18 21:43
加载中...