Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int pos0 = -1, pos1 = -1;
- void solve(string s, int hamming, int l,int r) {
- if(l > r || (pos0 != -1 && pos1 != -1))
- return;
- string temp = s;
- for(int i = l;i<=r;i++)
- temp[i] = (s[i]-'0') ^ 1 + '0';
- cout<<"? "<<temp<<endl;
- int newHamming;
- cin>>newHamming;
- int changed = r-l+1;
- int expectedHamming = hamming-changed;
- if(newHamming == expectedHamming) {
- pos1 = l;
- } else if(newHamming == hamming+changed) {
- pos0 = l;
- } else {
- solve(s,hamming,l,(l+r)/2);
- solve(s,hamming,(l+r)/2+1,r);
- }
- }
- int main()
- {
- ios_base::sync_with_stdio(0);
- int n;
- cin>>n;
- cout<<"? ";
- string s = "";
- for(int i =0;i<n;i++)
- s.push_back('0');
- cout<<s<<endl;
- int o, z;
- cin>>o;
- z = n-o;
- solve(s,o,0,n/2);
- cout<<"! "<<pos0+1<<" "<<pos1+1<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement