fork download
  1. // amiD
  2. #include <bits/stdc++.h>
  3. #define ll long long int
  4. #define pb push_back
  5. #define endl '\n'
  6. #define Endl '\n'
  7. #define fi first
  8. #define ii pair<ll,ll>
  9. #define se second
  10. #define ld long double
  11. #define mod 1000000007
  12. #define popcount __builtin_popcountll
  13. #define PI acos(-1.0)
  14. using namespace std;
  15. bool d[33];
  16. int main(){
  17. ll a=0, b=0;
  18. for(int i=0;i<30;i++){
  19. ll y=(1<<i);
  20. printf("? %lld %lld\n", y, y);
  21. fflush(stdout);
  22. int x;
  23. scanf("%d",&x);
  24. if(x!=0)d[i]=1;
  25. if(x==1){
  26. a|=(1<<i);
  27. }
  28. if(x==-1){
  29. b|=(1<<i);
  30. }
  31. }
  32. for(int i=0;i<30;i++){
  33. if(d[i])continue;
  34. ll y=(1<<i);
  35. printf("? %lld 0\n", y);
  36. fflush(stdout);
  37. int x;
  38. scanf("%d",&x);
  39. if(x==0)continue;
  40. b|=(1<<i);
  41. a|=(1<<i);
  42. }
  43. // sdfsfsdfdsf
  44. cout<<"! "<<a<<" "<<b<<endl;
  45. fflush(stdout);
  46. return 0;
  47. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
? 1 1
? 2 2
? 4 4
? 8 8
? 16 16
? 32 32
? 64 64
? 128 128
? 256 256
? 512 512
? 1024 1024
? 2048 2048
? 4096 4096
? 8192 8192
? 16384 16384
? 32768 32768
? 65536 65536
? 131072 131072
? 262144 262144
? 524288 524288
? 1048576 1048576
? 2097152 2097152
? 4194304 4194304
? 8388608 8388608
? 16777216 16777216
? 33554432 33554432
? 67108864 67108864
? 134217728 134217728
? 268435456 268435456
? 536870912 536870912
! 0 0