#include <iostream>
using std:: cin ;
using std:: cout ;
using std:: endl ;
int main( ) {
constexpr char yes = 'y' ;
constexpr char no = 'n' ;
int left = 1 ;
int right = 100 ;
cout << "Guess the number from " << left << " to " << right << "." << endl;
cout << "Further enter \" " << yes << "\" if the answer is yes, or \" " << no << "\" if the answer is no." << endl;
while ( right - left > 1 ) {
int approximation = ( left + right) / 2 ;
cout << "Is your number less than " << approximation << "?" << endl;
char answer = ' ' ;
while ( true ) {
cout << ">>> " ;
cin >> answer;
if ( answer == yes || answer == no) {
break ;
} else {
cout << "I do not get it. Please, follow the above rule entering the answer." << endl;
}
}
switch ( answer) {
case yes:
right = approximation;
break ;
case no:
left = approximation;
break ;
default :
break ;
}
}
cout << "Your number is " << left << "." << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgc3RkOjpjaW47CnVzaW5nIHN0ZDo6Y291dDsKdXNpbmcgc3RkOjplbmRsOwoKaW50IG1haW4oKSB7CiAgICBjb25zdGV4cHIgY2hhciB5ZXMgPSAneSc7CiAgICBjb25zdGV4cHIgY2hhciBubyA9ICduJzsKCiAgICBpbnQgbGVmdCA9IDE7CiAgICBpbnQgcmlnaHQgPSAxMDA7CgogICAgY291dCA8PCAiR3Vlc3MgdGhlIG51bWJlciBmcm9tICIgPDwgbGVmdCA8PCAiIHRvICIgPDwgcmlnaHQgPDwgIi4iIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJGdXJ0aGVyIGVudGVyIFwiIiA8PCB5ZXMgPDwgIlwiIGlmIHRoZSBhbnN3ZXIgaXMgeWVzLCBvciBcIiIgPDwgbm8gPDwgIlwiIGlmIHRoZSBhbnN3ZXIgaXMgbm8uIiA8PCBlbmRsOwoKICAgIHdoaWxlIChyaWdodCAtIGxlZnQgPiAxKSB7CiAgICAgICAgaW50IGFwcHJveGltYXRpb24gPSAobGVmdCArIHJpZ2h0KSAvIDI7CiAgICAgICAgY291dCA8PCAiSXMgeW91ciBudW1iZXIgbGVzcyB0aGFuICIgPDwgYXBwcm94aW1hdGlvbiA8PCAiPyIgPDwgZW5kbDsKCiAgICAgICAgY2hhciBhbnN3ZXIgPSAnICc7CiAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgY291dCA8PCAiPj4+ICI7CiAgICAgICAgICAgIGNpbiA+PiBhbnN3ZXI7CiAgICAgICAgICAgIGlmIChhbnN3ZXIgPT0geWVzIHx8IGFuc3dlciA9PSBubykgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBjb3V0IDw8ICJJIGRvIG5vdCBnZXQgaXQuIFBsZWFzZSwgZm9sbG93IHRoZSBhYm92ZSBydWxlIGVudGVyaW5nIHRoZSBhbnN3ZXIuIiA8PCBlbmRsOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBzd2l0Y2ggKGFuc3dlcikJewogICAgICAgIGNhc2UgeWVzOgogICAgICAgICAgICByaWdodCA9IGFwcHJveGltYXRpb247CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2Ugbm86CiAgICAgICAgICAgIGxlZnQgPSBhcHByb3hpbWF0aW9uOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCAiWW91ciBudW1iZXIgaXMgIiA8PCBsZWZ0IDw8ICIuIiA8PCBlbmRsOwp9Cg==