Pagini recente » Cod sursa (job #1129906) | Cod sursa (job #2768198) | Cod sursa (job #238243) | Cod sursa (job #1449160) | Cod sursa (job #3251678)
#undef LOCAL
#pragma region TEMPLATES
#include <bits/stdc++.h>
using namespace std;
typedef long long i64;
typedef unsigned long long u64;
const string file = "";
void init() {
#ifdef DEBUG
freopen( "in.txt", "r", stdin);
#elif LOCAL
freopen( "in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#else
cin.tie(0)->sync_with_stdio(0);
if (!file.empty()) {
freopen((file + ".in").c_str(), "r", stdin);
freopen((file + ".out").c_str(), "w", stdout);
}
#endif
}
#ifndef LOCAL
#define debug(...) 69420
#define init_test(...) 69420
#else
void init_test(int t) {
cerr << "\nTEST #" << t << "\n";
}
template<typename T>
void debug(T n) {
cerr << n << "\n";
}
template<typename T, typename... Args>
void debug(T n, Args... args) {
cerr << n << " ";
debug(args...);
}
template<typename T>
void debug(const vector<T> &v) {
for (const auto &it : v) {
cerr << it << " ";
}
cerr << "\n";
}
#endif
void solve();
int main() {
init();
int t = 1;
// cin >> t;
for (int i = 1; i <= t; ++i) {
init_test(i);
solve();
}
}
#pragma endregion TEMPLATES
void solve() {
int N;
cin >> N;
int l = 1, r = N;
while (l <= r) {
int mid = (l + r) / 2;
cout << "? " << mid << endl;
bool leq;
cin >> leq;
if (leq) {
r = mid - 1;
}
else {
l = mid + 1;
}
}
cout << "! " << l << endl;
}