#include <iostream>
#include <map>
using namespace std;
map<int, int> queries;
int ask(int x, int y = 1, int z = 1) {
if (queries.find(x) != queries.end()) return queries[x];
cout << "? " << x << ' ' << y << ' ' << z << endl;
cin >> queries[x];
return queries[x];
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int q, n, m, k;
cin >> n >> m >> k >> q;
int left = 1, right = n;
while (left < right) {
//int mid1 = left + (right - left) / (1 + 1.61803399);
//int mid2 = right - (right - left) / (1 + 1.61803399);
int mid1 = (left + right) / 2;
int mid2 = mid1 + 1;
if (mid2 > n) mid2 = mid1 - 1;
int val1 = ask(mid1);
int val2 = ask(mid2);
if (val1 <= val2) left = mid1 + 1;
else right = mid2 - 1;
}
cout << "! " << left << ' ' << 1 << ' ' << 1 << '\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |