Lang:Python2
Edit12345678910111213141516171819202122232425262728import collectionsn = input()s = map(int, raw_input().split())d = collections.Counter(s)m = max(d[i] for i in d)if m >= (n + 1) / 2 + 1:print -1exit()ret = []for i in range(n):c, m = d.most_common(1)[0]if n & 1 and m == n / 2 + 1:m -= 1else:for i in sorted(d.keys()):if len(ret) == 0 or i != ret[-1]:c = ibreakret.append(c)d[c] -= 1if d[c] == 0: del d[c]n -= 1print ' '.join(map(str, ret))