답안 #837321

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
837321 2023-08-25T09:34:28 Z 1075508020060209tc Worm Worries (BOI18_worm) C++14
컴파일 오류
0 ms 0 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);
    }
    if(l+2==r){
        chk(l);
        chk(l+1);
        chk(l+2);
    }
}
ot(l);

}

Compilation message

worm.cpp: In function 'int main()':
worm.cpp:60:5: error: too few arguments to function 'void ot(int, int, int)'
   60 | ot(l);
      |     ^
worm.cpp:16:6: note: declared here
   16 | void ot(int x,int y,int z){
      |      ^~