注意边界条件和边界数据:
#include#include #include #include using namespace std; const int MAXN=50005; int L,N,M,d[MAXN]; bool can(int mid) { int num=N-M; int last=0; for(int i=0;i N) return 0; last=cur; } return 1; } int main() { while(cin>>L>>N>>M) { if(N+M==0) {cout< 1) { int mid=(lhs+rhs)>>1; if(can(mid)) lhs=mid; else rhs=mid; } cout<