Submission #1194415

#TimeUsernameProblemLanguageResultExecution timeMemory
1194415teletubigam3Worm Worries (BOI18_worm)C++20
10 / 100
0 ms408 KiB
#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 && q == 40000)
        {
            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);
            int g,h;
            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])
                {
                    g= i+1;
                    h=j+1;
                }

            cout<<"! "<<g<<" "<<h<<" 1\n";
        }
        else cout<<"! 1 1 1\n";

    }



    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...