C. Assembly via Minimums

最后更新于 2025-08-10 18:45:18
作者
分类 题解

C. Assembly via Minimums

Description

有一个长度为 $n$ 的序列 $a$,我们把在其中任意选择两个数求得的所有的最小值放入长度为 $\dfrac{n(n-1)}2$ 的序列 $b$ 中并将其随意打乱,请通过 $b$ 还原 $a$,如果可能的序列 $a$ 不止一种,输出任意一种即可。

Solution

真没什么好说的。

将 $b$ 升序排序,然后直接就把 $a$ 求出来了。

注意最后一项其实只要设为一个大数即可,所以为了不处理边界直接设为 $10^9$ 就行。

Code

void Solve()
{
	n = read();
	
	int m = n * (n - 1) / 2;
	fup (i, 1, m)
		a[i] = read();
	
	sort(a + 1, a + m + 1);
	
	int i, j;
	for (i = 1, j = n - 1; i <= m; i += j, -- j )
		wsp(a[i]);
	
	wel(1e9);
	
	return;
}