题目描述
小A同学设置了n个互不相等的整数,作为自己电脑的密码。
为了防止自己遗忘,他写出一组数作为提示信息,这组数有n-1个数字,其中第i个数是用密码的第i-1位和第i+1位相加得到的。
比如,假设密码为1,3,5,4,2,则提示信息为:4,8,9,6。
请你根据提示信息,计算出小A的密码,如果有多种可能的解,你只需要输出字典码最小的那组解。
全排列指的是:将数字1n全部打乱,这组数必定包含1n的每个数,且不重复。
输入
输入的第一行包含一个整数 N(2≤N≤10),数组中的每个数Ai满足1≤Ai≤2000。
第二行包含 N-1 个空格分隔的整数。
输出
输出一行,包含 N 个空格分隔的整数。
样例
输入
5
4 8 9 6
输出
1 3 5 4 2
#include<bits/stdc++.h>
using namespace std;
int n,a[1001],s[1001],p=1,l=0;
int main(){
cin>>n;
for(int i=1;i<n;i++){
cin>>a[i];
}for(int i=1;i<=n;i++){
for(int j=1;j<=9;j++){
for(int k=1;k<=9;k++){
if((j+k)==a[i]&&(i==1||(j+l)==a[i])){
s[p]=j;
p++;
l=k;
}
}
}
}
for(int i=1;i<n;i++)cout<<s[i]<<" ";
cout<<l;
return 0;
}