Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- void poisk (int raznica, int left, int right)
- {
- int i=(right + left)/2;
- int middle = 0;
- cout << "?" << " " << i << endl;
- cin >> middle;
- int tek_raznica = middle - i;
- if (tek_raznica < raznica)
- {
- right = i;
- if (right - left == 1)
- cout << "!" << " " << left << endl;
- else
- poisk (raznica, left, right);
- }
- if (tek_raznica >= raznica)
- {
- left = i;
- if (right - left == 1)
- cout << "!" << " " << left << endl;
- else
- poisk (raznica, left, right);
- }
- }
- int main()
- {
- cout.flush();
- int n=0, elem_first;
- cin >> n;
- cout << "?" << " " << 1 << endl;
- cin >> elem_first;
- int raznica = elem_first-1;
- poisk(raznica, 1, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement