39分求助
查看原帖
39分求助
406934
xingyu369楼主2023/5/4 21:06
#include<bits/stdc++.h>
using namespace std;
int n,a[12],sum[50];
int main(){
	while(~scanf("%d",&n)){
		for(int i=1;i<=(n*n-n)/2;i++)
			scanf("%d",&sum[i]);
		sort(sum+1,sum+1+(n*n-n)/2);
		a[1]=(sum[2]-sum[n]+sum[1])/2;
		for(int i=1;i<n;i++){
			a[i+1]=sum[i]-a[1];
		}
		int k=n-1;
		bool f=0;
		for(int i=2;i<=n;i++){
			for(int j=i+1;j<=n;j++){
				if(a[i]+a[j]!=sum[++k]){
					puts("Impossible");
					f=1;
					break;
				}
			}
			if(f)
				break;
		}
		if(!f){
			sort(a+1,a+1+n);
			for(int i=1;i<=n;i++)
				printf("%d ",a[i]);
			puts("");
		}
	}
	return 0;
}

谢谢

2023/5/4 21:06
加载中...