Advertisement
Guest User

Untitled

a guest
Sep 19th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4. int pos0 = -1, pos1 = -1;
  5. void solve(string s, int hamming, int l,int r) {
  6. if(l > r || (pos0 != -1 && pos1 != -1))
  7. return;
  8. string temp = s;
  9. for(int i = l;i<=r;i++)
  10. temp[i] = (s[i]-'0') ^ 1 + '0';
  11. cout<<"? "<<temp<<endl;
  12. int newHamming;
  13. cin>>newHamming;
  14. int changed = r-l+1;
  15. int expectedHamming = hamming-changed;
  16. if(newHamming == expectedHamming) {
  17. pos1 = l;
  18. } else if(newHamming == hamming+changed) {
  19. pos0 = l;
  20. } else {
  21. solve(s,hamming,l,(l+r)/2);
  22. solve(s,hamming,(l+r)/2+1,r);
  23. }
  24. }
  25.  
  26. int main()
  27. {
  28. ios_base::sync_with_stdio(0);
  29. int n;
  30. cin>>n;
  31. cout<<"? ";
  32. string s = "";
  33. for(int i =0;i<n;i++)
  34. s.push_back('0');
  35. cout<<s<<endl;
  36. int o, z;
  37. cin>>o;
  38. z = n-o;
  39. solve(s,o,0,n/2);
  40. cout<<"! "<<pos0+1<<" "<<pos1+1<<endl;
  41. return 0;
  42. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement