diff --git a/zeta_python/1071.py b/zeta_python/1071.py new file mode 100644 index 0000000..1235082 --- /dev/null +++ b/zeta_python/1071.py @@ -0,0 +1,41 @@ +def continuous(a, b): + return a + 1 == b + + +def solve(N: int, S: list[int]): + x = [] + spares = [] + nums = list(S) + nums.sort() + + x.append(nums[0]) + for n in nums[1:]: + if continuous(x[-1], n): + spares.append(n) + else: + x.append(n) + while spares: + if not continuous(x[-1], spares[0]): + x.append(spares.pop(0)) + else: + break + + if spares: + k = -1 + l = len(x) + while spares: + if -l == k: + x.insert(0, spares.pop(0)) + continue + if continuous(spares[0], x[k]) or continuous(x[k - 1], spares[0]): + k -= 1 + else: + x.insert(k, spares.pop(0)) + + return x + + +if __name__ == '__main__': + N = int(input()) + S = list(map(int, input().split())) + print(" ".join(map(str, solve(N, S))))