Advertisement
allia

Сене

Jan 13th, 2021
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. void bin( int a, int b, int l, int n)
  5. {
  6.  
  7. if (n-l==1)
  8. {
  9. if (a!=l)
  10. cout << "! " << l << endl;
  11. else cout << "! " << n << endl;
  12. }
  13. else
  14. {
  15. int i=(n-l)/2+1+l;
  16. int middle = 0;
  17.  
  18. cout << "?" << " " << i << endl;
  19. cin >> middle;
  20.  
  21. if (middle - a != i-1-l)
  22. {
  23. n=i-1;
  24. bin (a, middle, l, n);
  25. }
  26. else//проверяем вторую половину
  27. {
  28. if (b-middle!=i-1) //берем последний элемент первой половины как 0 следующей половины
  29. {
  30. l=i-1;
  31. bin (middle, b, l, n);
  32. }
  33. }
  34. }
  35. }
  36.  
  37. int main()
  38. {
  39. cout.flush();
  40. int n;
  41. cin >> n;
  42.  
  43. int elem_last=0, elem_0=0;
  44.  
  45. cout << "?" << " " << 1 << endl;
  46. cin >> elem_0;
  47.  
  48. cout << "?" << " " << n << endl;
  49. cin >> elem_last;
  50.  
  51. bin(elem_0, elem_last, 0, n-1);
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement