with open("input.txt") as f: lines = [i.strip() for i in f.readlines()] def count_digits(ar): zeros = [0] * len(ar[0]) ones = [0] * len(ar[0]) for row in ar: for pos, c in enumerate(row.strip()): (zeros if c == "0" else ones)[pos] += 1 return zeros, ones zeros, ones = count_digits(lines) print(zeros) print(ones) # lol gamma_bits = [] epsi_bits = [] for pos, zero in enumerate(zeros): gamma_bits.append("1" if zero < ones[pos] else "0") epsi_bits.append("1" if zero > ones[pos] else "0") gamma = int("".join(gamma_bits), 2) epsi = int("".join(epsi_bits), 2) print(gamma * epsi)