제출 #1362438

#제출 시각아이디문제언어결과실행 시간메모리
1362438adriines06Dark Ride (EGOI25_darkride)C++20
100 / 100
2 ms924 KiB
#include <bits/stdc++.h>

using namespace std;

int query(const string& switches) {
    cout << "? " << switches << endl;
    int num_screams;
    cin >> num_screams;
    return num_screams;
}

int main() {
    int n; cin>>n;
    vector<int>A,B; 
    int xors=0;
    for(int i=0;i<15;i++){
        vector<int>on,off;
        string s="";
        for(int j=0;j<n;j++){
            if((j>>i)&1){
                s+='1';
                on.push_back(j);
            }
            else{
                s+='0';
                off.push_back(j);
            }
        }
        int scr=query(s);
        if(scr%2!=0){
            A=on;
            B=off;
            xors+=(1 << i);
        }  
    }
    int l=0,r=A.size()-1;
    while(l<r){
        int mid=(l+r)/2;
        string s(n,'0');
        for(int i=l;i<=mid;i++){
            s[A[i]]='1';
        }
        if((query(s)%2)==0) l=mid+1;
        else r=mid;
    }
    int a=A[l],b;
    b=a^xors;
    
    cout << "! " <<a<< ' ' <<b<< endl;
        
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…