Submission #837306

# Submission time Handle Problem Language Result Execution time Memory
837306 2023-08-25T09:30:35 Z 1075508020060209tc Worm Worries (BOI18_worm) C++14
0 / 100
3000 ms 284 KB
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n;int m;int K;int Q;
map<pair<int,pair<int,int>>,int>mp;
int ask(int x,int y,int z){
if(x==0){return 0;}
if(x==n+1){return 0;}
if(mp[{x,{y,z}}]){return mp[{x,{y,z}}];}
cout<<"? "<<x<<" "<<y<<" "<<z<<endl;
int ret;
cin>>ret;
mp[{x,{y,z}}]=ret;
return ret;
}
void ot(int x,int y,int z){
cout<<"! "<<x<<" "<<y<<" "<<z<<endl;
exit(0);
}

void chk(int x){
int a;int b;int c;
a=ask(x-1,1,1);
b=ask(x,1,1);
c=ask(x+1,1,1);
if(b>=a&&b>=c){
    ot(x,1,1);
}
}

signed main(){
cin>>n>>m>>K>>Q;
int l=1;int r=n;

int a;int b;int c;int d;
a=ask(1,1,1);
b=ask(2,1,1);
c=ask(n-1,1,1);
d=ask(n,1,1);
if(a>=b){ot(1,1,1);}
if(d>=c){ot(n,1,1);}
while(l<r){
    int mi=l+(r-l)/2;
    int v=ask(mi,1,1);
    if(v>=a){
        r=mi;
    }else{
        l=mi;
    }
    if(l+1==r){
        chk(l);
        chk(r);
        
    }
}


}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Correct 1 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Incorrect 1 ms 208 KB invalid format (must have DIMS+1 tokens). input:
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 3060 ms 208 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Incorrect 0 ms 208 KB not a local maximum
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 208 KB Output is correct
2 Correct 0 ms 208 KB Output is correct
3 Correct 0 ms 208 KB Output is correct
4 Incorrect 1 ms 284 KB invalid format (must have DIMS+1 tokens). input:
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 208 KB Output is correct
2 Incorrect 1 ms 240 KB not a local maximum
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 256 KB Output is correct
2 Incorrect 0 ms 208 KB not a local maximum
3 Halted 0 ms 0 KB -