n = int(input())
ans = [0] * n
print("? 1 2")
a = int(input())
print("? 2 3")
b = int(input())
print("? 1 3")
c = int(input())
ans[0] = (a + b + c) // 2 - b
ans[1] = a - ans[0]
ans[2] = b - ans[1]
for i in range(3, n):
print(f"? {i} {i + 1}")
ans[i] = int(input()) - ans[i - 1]
print("!", *ans)
#include<bits/stdc++.h>
#define ed '\n'
using namespace std;
int main()
{
long int n;
cin>>n;
long int a[n+1],i,x,sum=0,d[3];
for(i=1;i<=n;i++)
{
if(i==1 || i==2)
{
cout<<"?"<<" "<<i<<" "<<(i+1)<<ed;
}
else
{
cout<<"?"<<" "<<"1"<<" "<<i<<ed;
}
cin>>x;
if(i==1 || i==2 || i==3)
{
d[i]=x;
}
if(i==3)
{
a[i]=((d[2]+d[3])-d[1])/2;
a[2]=(d[2]-a[i]);
a[1]=(d[1]-a[2]);
}
else
{
a[i]=(x-a[1]);
}
}
cout<<"!"<<" ";
for(i=1;i<=n;i++)
{
cout<<a[i]<<" ";
}
cout<<ed;
return 0;
}
1505H - L BREAK into program | 171E - MYSTERIOUS LANGUAGE |
630D - Hexagons | 1690D - Black and White Stripe |
1688D - The Enchanted Forest | 1674C - Infinite Replacement |
712A - Memory and Crow | 1676C - Most Similar Words |
1681A - Game with Cards | 151C - Win or Freeze |
1585A - Life of a Flower | 1662A - Organizing SWERC |
466C - Number of Ways | 1146A - Love "A" |
1618D - Array and Operations | 1255A - Changing Volume |
1710C - XOR Triangle | 415C - Mashmokh and Numbers |
8A - Train and Peter | 591A - Wizards' Duel |
1703G - Good Key Bad Key | 1705A - Mark the Photographer |
1707A - Doremy's IQ | 1706B - Making Towers |
1325B - CopyCopyCopyCopyCopy | 1649C - Weird Sum |
1324B - Yet Another Palindrome Problem | 525A - Vitaliy and Pie |
879A - Borya's Diagnosis | 1672B - I love AAAB |