大佬球球!点进来看看拿错了
查看原帖
大佬球球!点进来看看拿错了
686187
pumaway楼主2022/8/21 21:51

为啥错了啊,各位大佬qwq


#include <bits/stdc++.h>
using namespace std;
//#define MAXN 100010
#define rep(i,a,n) for (int i=a;i<=n;++i)
#define per(i,a,n) for (int i=n;i>=a;--i)
#define INF 1000000000
#define F first
#define S second
#define pb push_back
#define mp make_pair
#define pob pop_back
#define all(x) (x).begin(),(x).end()
#define ent cout<<'\n'
//const int N = ;
typedef vector<int> vi;
typedef long long ll;
typedef pair<int, int> pii;
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}

int L,n,k;
int a[1000010];

bool check(int mid)
{
	int sum=0;
	for(int i=2;i<=n;++i)
	{
		sum+=(a[i]-a[i-1]/mid);
		if((a[i]-a[i-1])%mid==0) --sum;
		if(sum>k) return 0;
	}
	return 1;
}

int main()
{
	ios::sync_with_stdio(0); cin.tie(0), cout.tie(0);
	
	cin>>L>>n>>k;

	for(int i=1;i<=n;++i) cin>>a[i];

	int l=0,r=L;

	while(l<r)
	{
		int mid=l+r>>1;
		if(check(mid)) r=mid;
		else l=mid+1;
	}
	cout<<l<<endl;

	return 0;
}











2022/8/21 21:51
加载中...