Submission #1357288

#TimeUsernameProblemLanguageResultExecution timeMemory
1357288mahribanDark Ride (EGOI25_darkride)C++20
41 / 100
0 ms464 KiB
#include<bits/stdc++.h>
using namespace std;
int main(){
    int N;
    cin >> N;
    if (N <= 30){
        string s(N, '0');
        int i = 0, x = -1, y = -1, k;
        while (i < N){
            s[i] = '1';
            cout << "? " << s << endl;
            cin >> k;
            if (k == 1){if (x < 0)x = i; else y = i;}
            s[i] = '0';
            i ++;
        }
        cout << "! " << x << ' ' << y << endl;
        return 0;
    }
    int l = 1, r = N, k;
    string s(N, '0');
    while (l <= r){
        int mid = (l + r) / 2;
        s.replace(l, mid - l + 1, string(mid - l + 1, '1'));
        cout << "? " << s << endl;
        cin >> k;
        s.replace(l, mid - l + 1, string(mid - l + 1, '0'));
        if (k % 2 == 0){l = mid + 1;}
        else{r = mid - 1;}
    }
    cout << "! " << 0 << ' ' << l << endl;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...