Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void edinica( long long l, long long n, long long m)
- {
- int middle = 0;
- if (n-l==1)
- {
- cout << "! " << m-n << endl;
- }
- else
- {
- long long i=(n-l)/2+1+l;
- cout << "?" << " " << i << endl;
- cin >> middle;
- if (middle == 1)
- {
- n=i-1;
- edinica ( l, n, m);
- }
- else//проверяем вторую половину
- {
- l=i-1;
- edinica ( l, n, m);
- }
- }
- }
- int main()
- {
- cout.flush();
- long long n=0;
- int first_element=0, last_element=0;
- cin >> n;
- cout << "?" << " " << 1 << endl;
- cin >> first_element;
- cout << "?" << " " << n << endl;
- cin >> last_element;
- if (first_element == 1)
- cout << "!" << " " << n << endl;
- else if (last_element == 0)
- cout << "!" << " " << 0 << endl;
- else edinica(0, n-1, n);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement