complete 1071
This commit is contained in:
41
zeta_python/completed/1071.py
Normal file
41
zeta_python/completed/1071.py
Normal 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))))
|
||||
Reference in New Issue
Block a user