int l = 0;
int r = 1000;
// l and r denote our current bounds: we know that l <= x <= r
while(l<r) {
// we will ask about the number in the middle
int m = (l+r)/2;
// note: this is an integer division, thus e.g., for l=0, r=1 we get m=1/2=0
if(x <= m)
r = m;
else
l = m+1;
}
aW50IGwgPSAwOwppbnQgciA9IDEwMDA7Ci8vIGwgYW5kIHIgZGVub3RlIG91ciBjdXJyZW50IGJvdW5kczogd2Uga25vdyB0aGF0IGwgPD0geCA8PSByCndoaWxlKGw8cikgewogIC8vIHdlIHdpbGwgYXNrIGFib3V0IHRoZSBudW1iZXIgaW4gdGhlIG1pZGRsZQogIGludCBtID0gKGwrcikvMjsKICAvLyBub3RlOiB0aGlzIGlzIGFuIGludGVnZXIgZGl2aXNpb24sIHRodXMgZS5nLiwgZm9yIGw9MCwgcj0xIHdlIGdldCBtPTEvMj0wCiAgaWYoeCA8PSBtKQogICAgciA9IG07CiAgZWxzZQogICAgbCA9IG0rMTsKICB9