aloha greedy3(1071)

This commit is contained in:
2024-03-14 20:14:43 +09:00
parent 2b3cfa9426
commit a44ad520d8

41
zeta_python/1071.py Normal file
View File

@@ -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))))