#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n, m, k, q;
ll find(ll start, ll end) {
if(start == end) {
return start;
}
if(end - start <= 5000) {
return find(start + 1, end);
}
ll q1, q2;
ll middle = (start + end) / 2;
cout << "? " << middle << " " << 1 << " " << 1 << endl;
cin >> q1;
cout << "? " << middle + 1 << " " << 1 << " " << 1 << endl;
cin >> q2;
if(q1 >= q2) {
return find(start, middle + 1);
} else {
return find(middle + 2, end);
}
}
int main() {
cin >> n >> m >> k >> q;
ll a, b;
cout << "? " << n / 2 << " " << 1 << " " << 1 << endl;
cin >> a;
cout << "? " << n / 2 + 1 << " " << 1 << " " << 1 << endl;
cin >> b;
cout << "! " << find(0, n) << " " << 1 << " " << 1 << endl;
}
# | 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... |