Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def main():
- cages = parse_cages()
- grid = [[0, 0, 0, 0, 0] for x in range(5)]
- i = 0
- while i < 25:
- if grid[i // 5][i % 5] <= 4:
- grid[i // 5][i % 5] += 1
- if (validate_rows(grid) and validate_rows(transpose(grid)) and
- validate_cages(grid, cages)):
- i += 1
- else:
- pass
- else:
- grid[i // 5][i % 5] = 0
- i -= 1
- print_answer(grid)
- def print_answer(grid):
- for row in grid:
- line = ""
- for x in row:
- line += str(x) + " "
- print(line.strip())
- def parse_cages():
- cages = []
- num_of_cage = int(input())
- for i in range(num_of_cage):
- cage = input().split( )
- cages.append([int(x) for x in cage])
- return cages
- def transpose(grid):
- transposed_list = []
- for i in range(len(grid[0])):
- new_list = []
- for row in range(len(grid)):
- new_list.append(grid[row][i])
- transposed_list.append(new_list)
- return transposed_list
- def validate_rows(grid):
- for row in range(len(grid)):
- for i in range(len(grid[row])):
- if grid[row][i] > 0 and grid[row][i] in grid[row][i + 1:]:
- return False
- return True
- def validate_cages(grid, cages):
- for i in range(len(cages)):
- cage = cages[i]
- cage_sum = cage[0]
- num_sum = 0
- grid_list = ([grid[cage[num] // 5][cage[num] % 5]
- for num in range(1, len(cage))])
- for num in grid_list:
- num_sum += num
- if 0 in grid_list:
- if not num_sum < cage_sum:
- return num_sum < cage_sum
- else:
- if num_sum != cage_sum:
- return num_sum == cage_sum
- return True
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement