59 lines
1.4 KiB
Python
59 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
multiplier = 1000000 # multiplier for expansion
|
|
|
|
data = []
|
|
koor_adder = multiplier - 1
|
|
freie_zeilen = []
|
|
c = 0
|
|
input_file = open("input", "r")
|
|
for line in input_file:
|
|
line = line.strip()
|
|
if line.count(".") == len(line):
|
|
freie_zeilen.append(c)
|
|
data.append(line)
|
|
c += 1
|
|
input_file.close()
|
|
|
|
zeilen = len(data)
|
|
spalten = len(data[0])
|
|
print("freie Zeilen:", freie_zeilen)
|
|
|
|
# leere Spalten ermitteln
|
|
s_free = [1 for i in range(spalten)]
|
|
for da in data:
|
|
for i in range(spalten):
|
|
if da[i] == "#":
|
|
s_free[i] = 0
|
|
freie_spalten = []
|
|
for i in range(len(s_free)):
|
|
if s_free[i] == 1:
|
|
freie_spalten.append(i)
|
|
print("freie Spalten:", freie_spalten)
|
|
|
|
org_koor_list = []
|
|
for z in range(len(data)):
|
|
for s in range(len(data[0])):
|
|
if data[z][s] == "#":
|
|
org_koor_list.append([z, s])
|
|
print("org:", org_koor_list)
|
|
|
|
koor_list = []
|
|
for k in org_koor_list:
|
|
z_add, s_add = 0, 0
|
|
for z in freie_zeilen:
|
|
if z < k[0]:
|
|
z_add += koor_adder
|
|
for s in freie_spalten:
|
|
if s < k[1]:
|
|
s_add += koor_adder
|
|
koor_list.append([k[0]+z_add, k[1]+s_add])
|
|
print("new:", koor_list)
|
|
|
|
summe = 0
|
|
for k in range(len(koor_list)):
|
|
for m in range(k+1, len(koor_list)):
|
|
summe += abs(koor_list[m][0] - koor_list[k][0])
|
|
summe += abs(koor_list[m][1] - koor_list[k][1])
|
|
print("Lösung", summe)
|