#include <bits/stdc++.h>
#pragma GCC optimize("O3,unroll-loops")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt")
#define se second
#define pb push_back
#define fi first
#define fo(var, n) for(long long var=0;var<n;var++)
#define fore(var, n) for(long long var=n-1;var>=0;var--)
using namespace std;
using ll = long long;
int ask(int a,int b, int c)
{
cout<<"? "<<a<<" "<<b<<" "<<c<<"\n"; int an; cout.flush(); cin>>an; return an;
}
int main()
{
// ios_base::sync_with_stdio(0); cin.tie(0);
//ifstream cin("in.in");
int tt = 1;
//cin>>tt;
while(tt--)
{
int n,m,k,q; cin>>n>>m>>k>>q;
if(k == 1 && m == 1 && q == 10000)
{
int l = 0, r = n-1, mid;
while(l<r)
{
mid=(l+r)/2;
int v1 = ask(mid+1, 1, 1), v2 = ask(mid+2, 1, 1);
if(v1<v2) l = mid+1;
else r = mid;
}
cout<<"! "<<(l+r)/2+1<<" 1 1\n";
cout.flush();
}
else if(k == 1 && m == 200 && n==200 && q == 35)
{
int a[n+2][m+2];
fo(i,n+2) fo(j,m+2) a[i][j] = 0;
fo(i,n) fo(j,m) a[i+1][j+1] = ask(i+1, j+1, 1);
fo(i,n) fo(j,m)
{
if(a[i+1][j+1] >= a[i+2][j+1] && a[i+1][j+1] >= a[i][j+1]&&a[i+1][j+1] >= a[i+1][j+2] && a[i+1][j+1] >= a[i+1][j])
{
cout<<"! "<<i+1<<" "<<j+1<<" 1\n";break;
}
}
cout.flush();
}
else cout<<"! 1 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... |