Submission #1352323

#TimeUsernameProblemLanguageResultExecution timeMemory
1352323hsuan._.0528Dark Ride (EGOI25_darkride)C++20
25 / 100
405 ms900880 KiB
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define pii pair<int, LL>
#define F first
#define S second
const int maxn = 3e5+10;
const int mod = 998244353;
const LL inf = 1e9;

int n, A=0, B=0;
string one[maxn];
string zero[maxn];

int qq(int l, int r){
    cout<<"? "<<( zero[l] + one[r-l+1] + zero[n-1-r] )<<endl;
    int a;
    cin>>a;
    return a;
}

signed main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin>>n;

    for(int i=1; i<=n; i++)
        one[i]=one[i-1]+'1',  zero[i]=zero[i-1]+'0';

    int l=0, r=n/2-1, m;
    while(l<=r){
      m=(l+r)/2;
     // cout<<0<<" "<<m<<"\n";
      if(qq(0, m) % 2)  r=m-1;
      else l=m+1;
    }
    A=l;

    l=A+1, r=n-1, m;
    while(l<=r){
      m=(l+r)/2;
      if(qq(m, n-1) % 2==0)  r=m-1;
      else l=m+1;
    }
    B=r;
    cout<<"! "<<A<<" "<<B<<endl;
    return 0;
}

#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...