From b7a8d9b980a73cedb1daef706725507947c1463c Mon Sep 17 00:00:00 2001 From: Muhammad Nauman Raza Date: Fri, 17 Jan 2025 11:44:30 +0000 Subject: [PATCH] refactor: cleanup 1231C --- solutions/python/1231C.py | 42 +++++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/solutions/python/1231C.py b/solutions/python/1231C.py index ca6b72c..cc50eea 100644 --- a/solutions/python/1231C.py +++ b/solutions/python/1231C.py @@ -15,7 +15,28 @@ def fail(): print("-1") sys.exit() -check = False +def zero_replace(combined, placements): + if placements[0] != 0: + options = [ + combined[idx-m]-1, + combined[idx-1]-1 + ] + + minimum = min(range(len(options)), key=lambda x: options[x]) + + diff_forward = abs(combined[idx-1]-combined[idx+m]) == 1 + diff_backward = abs(combined[idx+1]-combined[idx-m]) == 1 + + if diff_forward or diff_backward: + fail() + + if minimum == 1: + combined[idx] = options[minimum] + elif minimum == 0: + combined[idx] = placements[0]-1 + else: + combined[idx] = combined[idx-1]-1 + for idx, i in enumerate(combined): if i == 0: placements = [combined[idx-m], combined[idx+m]] @@ -24,24 +45,7 @@ for idx, i in enumerate(combined): 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 + zero_replace(combined, placements) else: fail()