题目链接:http://codeforces.com/contest/727/problem/C
题意:交互题;
printf(“? i j\n”);
fflush(stdout);
然后scanf(“%d”,&d);
就能把系统给你的东西输入到d这个变量里了。
让你猜一个序列a[1..n]。
每次你可以询问任意两个数字的和。
最多使用n次询问,求出所有的序列;
太高大上第一次见;其实就是每次你问任意两个数的和,然后系统告诉你,然后存到一个数里面,然后只能问n次,就原数组是多少;
#include<iostream>
#include<algorithm>
#include<math.h>
#include<string.h>
#include<stdio.h>
#include<map>
#include<vector>
#include<queue>
using namespace std;
#define met(a, b) memset(a, b, sizeof(a))
#define mod 1000000007
typedef long long LL;
//////////////////////////////////////////////////////////////
const int INF = 0x3f3f3f3f;
const int N = ;
const double eps = 1e-; int n, a[N]; int main()
{
scanf("%d", &n); for(int i=; i<n; i++)
{
printf("? 1 %d\n", i+);
fflush(stdout);
scanf("%d", &a[i]);
}
printf("? 2 3\n");
fflush(stdout);
scanf("%d", &a[n]);
int x = (a[]+a[]-a[n])/;
printf("! %d", x);
fflush(stdout); for(int i=; i<n; i++)
{
printf(" %d", a[i]-x);
fflush(stdout);
}
printf("\n");
fflush(stdout);
return ;
}