30 pts 求调。
查看原帖
30 pts 求调。
1296826
lcfollower楼主2024/8/24 14:28

rt,玄关。

# include <bits/stdc++.h>

# define int long long
# define rint register int

using namespace std;

const int N = 1e5 + 10;
int a[N] ,n ,m;

inline bool check(int mid){
  int k = 0;

  for (rint i = 1 ;i < n; i ++){
    int dis = a[i + 1] - a[i];
    if(dis > mid){
      k += (dis - 1) / mid;
      if(k > m + 1) return 0;
    }
  } return 1;
} signed main(){

  scanf("%lld %lld" ,&n ,&m);

  for(rint i = 1 ;i <= n;i ++) scanf("%lld", a + i);

  int l = 1 ,r = 1e8;

  while (l <= r){
    int mid = ((l + r) >> 1ll);
    if(check(mid)) r = mid - 1;
    else l = mid + 1;
  } printf("%lld\n" ,l);

  return 0;
}
2024/8/24 14:28
加载中...