답안 #920742

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
920742 2024-02-03T01:55:54 Z Pacybwoah Colors (BOI20_colors) C++17
0 / 100
0 ms 440 KB
#include<iostream>
#include<vector>
#define ll long long
using namespace std;
bool ask(ll num){
    cout<<"? "<<num<<endl;
    bool ans;
    cin>>ans;
    return ans;
}
int main(){
    ll n;
    cin>>n;
    if(n==1){
        cout<<"= 1"<<endl;
        return 0;
    }
    if(n==2){
        bool flag=ask(1);
        flag=ask(2);
        if(flag) cout<<"= 1"<<endl;
        else cout<<"= 2"<<endl;
        return 0;
    }
    ll L=0,R=0,last=(1+n)/2;
    bool now=1;
    while(last+1<n){
        if(now) L+=(last+n+1)/2-last;
        else R+=(last+n+1)/2-last;
        now=!now;
        last=(last+n+1)/2;
    }
    now=1;
    L++;
    R=n-R;
    ll l=1,r=n;
    bool ans=ask(L);
    ans=ask(R);
    last=(l+r)/2;
    if(ans) r=(l+r)/2;
    else l=(l+r)/2+1;
    while(l<r){
        ll mid=(l+r)>>1;
        if(mid>last){
            if(now){
                L-=mid-last;
                ans=ask(L);
            }
            else{
                R+=mid-last;
                ans=ask(R);
            }
        }
        else{
            if(now){
                L+=last-mid;
                ans=ask(L);
            }
            else{
                R-=last-mid;
                ans=ask(R);
            }
        }
        now=!now;
        last=mid;
        if(ans) r=mid;
        else l=mid+1;
    }
    cout<<"= "<<l<<endl;
}
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 440 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 440 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 440 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 440 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 0 ms 440 KB Execution killed with signal 13
2 Halted 0 ms 0 KB -