如题,全是wa
#include<iostream>
#include<vector>
#include<cmath>
using namespace std;
int L,N,K;
vector<int> signs;
int checkSet(int distance){
int setNum = 0;
for(int i=0;i<signs.size();i++){
if(signs[i]>distance){
setNum += (signs[i]-1)/distance;
}
}
return setNum;
}
int midCheck(int left,int right){
if(left+1==right){
if(checkSet(right)<=K) return right;
return left;
}
int mid = (left+right)>>1;
int setNum = checkSet(mid);
if(setNum<=K){
return midCheck(left,mid);
}else{
return midCheck(mid,right);
}
}
int main(){
cin >> L >> N >> K;
signs.push_back(0);
int distance = 0;
for(int i=0;i<N;i++){
cin >> distance;
signs.push_back(distance-signs[i]);
}
if(distance!=L) signs.push_back(L-distance);
cout << midCheck(0,L)<<endl;
system("pause");
return 0;
}