solutions: 1231C
This commit is contained in:
parent
9fc85722fe
commit
e74cf0f331
1 changed files with 55 additions and 0 deletions
55
solutions/python/1231C.py
Normal file
55
solutions/python/1231C.py
Normal file
|
@ -0,0 +1,55 @@
|
|||
import sys
|
||||
|
||||
n, m = map(int, input().split(' '))
|
||||
|
||||
combined = []
|
||||
|
||||
for _ in range(n):
|
||||
cols = map(int, input().split(' '))
|
||||
|
||||
combined += cols
|
||||
|
||||
combined = combined[::-1]
|
||||
|
||||
def fail():
|
||||
print("-1")
|
||||
sys.exit()
|
||||
|
||||
check = False
|
||||
for idx, i in enumerate(combined):
|
||||
if i == 0:
|
||||
placements = [combined[idx-m], combined[idx+m]]
|
||||
|
||||
if abs(placements[1]-placements[0]) == 1:
|
||||
fail()
|
||||
|
||||
if abs(combined[idx+1]-combined[idx-1]) != 1:
|
||||
if placements[0] != 0:
|
||||
options = [
|
||||
combined[idx-m]-1,
|
||||
combined[idx-1]-1
|
||||
]
|
||||
|
||||
minimum = min(range(len(options)), key=lambda x: options[x])
|
||||
|
||||
if (abs(combined[idx-1]-combined[idx+m]) == 1) or (abs(combined[idx+1]-combined[idx-m]) == 1):
|
||||
print("-1")
|
||||
sys.exit()
|
||||
|
||||
if minimum == 1:
|
||||
combined[idx] = options[minimum]
|
||||
elif minimum == 0:
|
||||
combined[idx] = placements[0]-1
|
||||
else:
|
||||
combined[idx] = combined[idx-1]-1
|
||||
else:
|
||||
fail()
|
||||
|
||||
for i in range(0,len(combined)):
|
||||
if (i+1) % m != 0 and (combined[i] <= combined[i+1]):
|
||||
fail()
|
||||
if i+m < len(combined):
|
||||
if combined[i+m] >= combined[i]:
|
||||
fail()
|
||||
|
||||
print(sum(combined))
|
Loading…
Reference in a new issue