제출 #1335697

#제출 시각아이디문제언어결과실행 시간메모리
1335697ezzzayDark Ride (EGOI25_darkride)C++20
9 / 100
1 ms420 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
int main() {
    int n;
    cin >> n;
    int M = 30;
    vector<int> r(M);
    for (int i = 0; i < M; i++) {
        string q(n, '0');
        for (int s = 0; s < n; s++) if ((s >> i) & 1) q[s] = '1';
        cout << "? " << q << endl;
        int x;
        cin >> x;
        r[i] = x & 1;
    }
    int h = 0;
    for (int i = 0; i < M; i++) if (r[i]) h |= 1 << i;
    int pos = 0;
    while (((h >> pos) & 1) == 0) pos++;
    vector<int> g;
    for (int i = 0; i < n; i++) if ((i >> pos) & 1) g.pb(i);
    int l = 0, r2 = g.size() - 1;
    while (l < r2) {
        int m = (l + r2) / 2;
        string q(n, '0');
        for (int i = l; i <= m; i++) q[g[i]] = '1';
        cout << "? " << q << endl;
        int x;
        cin >> x;
        if (x % 2) r2 = m;
        else l = m + 1;
    }
    int a = g[l];
    int b = a ^ h;
    cout << "! " << a << " " << b << endl;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...