fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. ll b1[10005][105];
  5. int main()
  6. {
  7.  
  8. cout<<"? ";
  9.  
  10. ll i=1;
  11. while(i<=100)
  12. {
  13. cout<<i<<" ";
  14. i++;
  15. }
  16. cout<<endl;
  17.  
  18. ll g1;
  19. cin>>g1;
  20. ll a[101];
  21.  
  22. i=1;
  23. while(i<=100)
  24. {
  25. a[i]=i^g1;
  26.  
  27. i++;
  28. }
  29.  
  30.  
  31. ll b[101];
  32. ll cg[101];
  33. map<ll,ll> r;
  34. i=101 ; ll k5=0;
  35.  
  36. while(k5!=101)
  37. {
  38. ll c1=0;
  39. ll j=1;
  40. while(j<=100)
  41. {
  42. ll k1 = a[j]^i;
  43. if(r[k1]==0)
  44. {
  45. c1++;
  46. }
  47. j++;
  48. }
  49.  
  50.  
  51. if(c1==100)
  52. {
  53. cg[k5]=i;
  54. k5++;
  55.  
  56. ll j=1;
  57. while(j<=100)
  58. {
  59. ll k1 = a[j]^i;
  60.  
  61. r[k1]++;
  62. j++;
  63. }
  64.  
  65. }
  66.  
  67.  
  68. i++;
  69. }
  70. cout<<"? ";
  71.  
  72. i=1;
  73. while(i<=100)
  74. {
  75. // cout<<i<<" ";
  76. cout<<cg[i]<<" ";
  77. i++;
  78. }
  79. cout<<endl;
  80.  
  81.  
  82. ll i4=0;
  83. i=1;
  84. while(i<=100)
  85. {
  86.  
  87. // a[i]=i^g1;
  88.  
  89. ll k2=a[i]; //k2---->'x'
  90. ll i1=1;
  91. ll k3;
  92. while(i1<=100)
  93. {
  94. //k3--->selected....a[i].....
  95.  
  96. k3=cg[i1];
  97. b1[i4][0]=k2;
  98. b1[i4][1]=k3;
  99. ll k4 = k3^k2;
  100. ll m=2;
  101. ll j=1;
  102. while(j<=100)
  103. {
  104. ll mg=cg[j]^k4;
  105.  
  106. b1[i4][m]=mg;
  107.  
  108. m++;
  109. j++;
  110. }
  111.  
  112. i4++;
  113.  
  114. i1++;
  115.  
  116. }
  117.  
  118.  
  119. i++;
  120. }
  121.  
  122. //cout<<cg[100]<<"\n";
  123.  
  124. cin>>g1;
  125. ll c2[101];
  126. i=1;
  127. while(i<=100)
  128. {
  129.  
  130. c2[i]=cg[i]^g1;
  131.  
  132. i++;
  133. }
  134.  
  135.  
  136. ll mg1;
  137. i=0;
  138. while(i<i4)
  139. {
  140. ll c=0;
  141. ll j=2;
  142. while(j<=101)
  143. {
  144. if(c2[j-1]==b1[i][j])
  145. {
  146. c++;
  147. }
  148. j++;
  149. }
  150.  
  151. if(c==100)
  152. {
  153.  
  154. mg1=b1[i][0];
  155.  
  156. }
  157.  
  158.  
  159.  
  160. i++;
  161. }
  162. cout<<"! ";
  163. cout<<mg1;
  164. cout<<endl;
  165.  
  166.  
  167.  
  168.  
  169.  
  170. return 0;
  171. }
Success #stdin #stdout 0.05s 12628KB
stdin
349
3022
stdout
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 
? 128 256 384 512 640 768 896 1024 1152 1280 1408 1536 1664 1792 1920 2048 2176 2304 2432 2560 2688 2816 2944 3072 3200 3328 3456 3584 3712 3840 3968 4096 4224 4352 4480 4608 4736 4864 4992 5120 5248 5376 5504 5632 5760 5888 6016 6144 6272 6400 6528 6656 6784 6912 7040 7168 7296 7424 7552 7680 7808 7936 8064 8192 8320 8448 8576 8704 8832 8960 9088 9216 9344 9472 9600 9728 9856 9984 10112 10240 10368 10496 10624 10752 10880 11008 11136 11264 11392 11520 11648 11776 11904 12032 12160 12288 12416 12544 12672 12800 
! 334