题目:给定含有n个数字的数组(元素可重复),要求重新排序该数组,得到比两边元素都要小的元素的最大个数。
思路:先排序,然后对前n/2个元素进行奇数位的插入,对后n/2个元素进行偶数位插入,然后判断新序列中符合条件的元素的个数
n = int(input())
a = sorted([*map(int, input().split())])
ans = [0] * n
ans[1::2] = a[:n//2]
ans[::2] = a[n//2:]
l = 0
for i in range(1,n-1):
if ans[i-1] > ans[i] < ans[i+1]:
l+=1
print(l)
print(*ans)