fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define faster ios_base::sync_with_stdio(false); cin.tie(NULL)
  4. #define Bit(mask , i) ((mask >> i) & 1)
  5. #define fi first
  6. #define se second
  7. #define _LOG2(nl) 31 - __builtin_clz(nl)
  8. #define c_bit(nl) __builtin_popcount(nl)
  9. #define ii pair<long long , int>
  10. #define lll pair<long long , pair<long long , long long>>
  11. #define lii pair<long long , pair<long long , int>>
  12. #define iii pair<int , pair<int , int>>
  13. #define iiii pair<pair<int , int> , pair<int , int>>
  14. #define llll pair<pair<__int128 , __int128> , pair<__int128 , __int128>>
  15. #define li pair<long long , int>
  16. #define db long double
  17. #define onBit(mask , i) (mask | (1 << i))
  18. #define offBit(mask , i) (mask & (~(1 << i)))
  19.  
  20. const int N = 2e5 + 7;
  21. int n;
  22. long long a[N];
  23.  
  24. void inp(){
  25. cin >> n;
  26. }
  27.  
  28. long long ask(int i , int j){
  29. cout << "? " << i << " " << j << '\n';
  30. cout.flush();
  31.  
  32. long long res;
  33. cin >> res;
  34. return res;
  35. }
  36.  
  37. void solve(){
  38. long long x = ask(1 , 2) , y = ask(2 , 3) , z = ask(1 , 3);
  39. a[1] = (x - y + z) / 2;
  40. a[2] = (x + y - z) / 2;
  41. a[3] = (y + z - x) / 2;
  42.  
  43. for (int i = 4 ; i <= n ; ++i){
  44. a[i] = ask(3 , i) - a[3];
  45. }
  46. cout << "! ";
  47. for (int i = 1 ; i <= n ; ++i){
  48. cout << a[i] << " ";
  49. }
  50. cout << '\n';
  51. cout.flush();
  52. }
  53.  
  54. int main(){
  55. // freopen("difmax.inp" , "r" , stdin);
  56. // freopen("difmax.out" , "w" , stdout);
  57. faster;
  58. inp();
  59. solve();
  60. return 0;
  61. }
  62.  
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
? 1 2
? 2 3
? 1 3
!