제출 #1361169

#제출 시각아이디문제언어결과실행 시간메모리
1361169uranhishigDark Ride (EGOI25_darkride)C++20
24 / 100
0 ms480 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long


int ask(string s) {
    int ans;
    cout << "? " << s << endl;
    cin >> ans;
    return ans;
}


void answer(int a, int b) {
    cout << "! " << min(a, b) << " " << max(a, b) << endl;
}

void solve() {
    int n;
    cin >> n;
    if (n <= 30) {
        int ans1 = -1, ans2 = -1;
        for (int i = 0; i < n; i++) {
            string s(n, '1');
            s[i] = '0';
            int x = ask(s);
            if(x == 1 and ans1 == -1) ans1 = i;
            if(x == 1 and ans1 != -1) ans2 = i;
        }
        answer(ans1, ans2);
        return;
    }
    int l = 0;
    int r = n + 1;
    while(l + 1 < r){
        int mid=(l + r)/2;
        string s(n, '0');
        for (int i = 0; i < mid; i++) s[i] = '1';
        int x= ask(s);
        if(x%2==0) r = mid;
        else l = mid;
    }
    answer(0, r);
    return;
}

signed main() {
    solve();
    return 0;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…