如果您的代码类似这种,最后需要加1:
while(l<r){ int mid=(l+r+1)>>1; if(check(mid)) l=mid; else r=mid-1; } printf("-1\n%d",l+1);
而且您Wa at 3。
也许是您的 lll 初始值为1,这样的话即使第一个不符合,也会输出2,所以 lll 的初始值应该设置为 0。