求教最后一个测试点
查看原帖
求教最后一个测试点
653854
LingMingQAQ楼主2023/2/23 18:17

最后一组案例运行错误,检查不出问题。求教

#include<iostream>
using namespace std;

//@date     :  2023/2/23 12:08:11
//@author :  LingMing
//@dile      :  CppFileModel
bool  Two_chose(long long int data[],long long int mini_length,long long int number_old,long long int number_new)
{
	long long int count =0;
	long long int midst;
	for (int i = 1; i < number_old; i++)
	{
		if (data[i] - data[i - 1] > mini_length)
		{
			midst = (data[i] - data[i - 1]) % mini_length;
			count += (data[i] - data[i - 1]) / mini_length;
			if (!midst)
				count -= 1;
		}
		if (count > number_new)
			return false;
	}
	return true;
}
int main()
{
	long long int length,number_old,number_new;			//总长度,原来路标数量,新增数量
	cin >> length >> number_old >> number_new;

	long long int data[100005];
	data[0] = 0;
	for (int i = 0; i < number_old; i++)
	{
		cin >> data[i];
	}
	long long int l = 0, r = length;
	long long int midst;
	while (l<r)
	{
		midst = (l + r) / 2;
		bool type = Two_chose(data,midst,number_old,number_new);
		if (type)
		{
			r = midst;
		}
		else
		{
			l = midst+1;
		}
	}
	cout << l;
}
2023/2/23 18:17
加载中...