Submission #920475

# Submission time Handle Problem Language Result Execution time Memory
920475 2024-02-02T15:22:08 Z Pacybwoah Colors (BOI20_colors) C++17
Compilation error
0 ms 0 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;
    assert(n!=17);
    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-1;
    bool now=1;
    while(last+1<n){
        if(now) L+=(last+1+n)/2-last;
        else R+=(last+1+n)/2-last;
        now=!now;
        last=(last+1+n)/2;
    }
    now=1;
    L++;
    R=n-R;
    ll l=1,r=n;
    bool ans=ask(L);
    ans=ask(R);
    last=(l+r)/2-1;
    if(ans) r=(l+r)/2-1;
    else l=(l+r)/2;
    while(l<r){
        int 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;
}

Compilation message

Colors.cpp: In function 'int main()':
Colors.cpp:14:5: error: 'assert' was not declared in this scope
   14 |     assert(n!=17);
      |     ^~~~~~
Colors.cpp:3:1: note: 'assert' is defined in header '<cassert>'; did you forget to '#include <cassert>'?
    2 | #include<vector>
  +++ |+#include <cassert>
    3 | #define ll long long