提交时间:2024-01-25 10:14:39
运行 ID: 127784
#include <bits/stdc++.h> using namespace std; int n,m,k,a[100005]; bool check(int dis){ int cur = 0,res = 0; for(int i = 1;i<=m+1;i++){ if(a[i]-a[cur]<dis) res++; else cur = i; } if(res>k) return false; return true; } int main(){ cin>>n>>m>>k; for(int i = 1;i<=m;i++) cin>>a[i]; a[m+1] = n; int l = 1,r = n; while(l<r){ int mid = (l+r+1)/2; if(check(mid)) l = mid; else r = mid-1; } cout<<l<<endl; }