#include <iostream>
#include <vector>
std::vector<long long> dirt(1111000, -1);
int Dirt(int n) {
if (dirt[n] != -1) {
return dirt[n];
}
std::cout << "? " << n+1 << " 1 1" << std::endl;
std::cin >> dirt[n];
return dirt[n];
}
int main() {
long long n, m, k, q;
std::cin >> n >> m >> k >> q;
Dirt(0);
Dirt(n-1);
int l = 0;
int r = n-1;
int mi = (l+r)/2;
while (l < r) {
if (Dirt(mi) <= Dirt(r)) {
l = mi+1;
}
else {
r = mi;
}
mi = (l+r)/2;
}
std::cout << "! " << mi << " 1 1";
}
# | 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... |