summaryrefslogtreecommitdiffstats
path: root/solutions/py/08.py
blob: cdd4b4a981e6d36b51d53d34c00f1444beecd3e5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
f = open("../input/08", "r").readline()

def format(layers):
    i = 0
    for layer in layers:
        print("\nlayer", i)
        i += 1
        for row in layer:
            for c in row:
                print(c, end=' ')
            print("")

def count(layer, num):
    return sum([row.count(num) for row in layer])

img = []
least_zeroes = None
num = 0

for l in range(100):
    #print("l", l)
    layer = [[int(f[l*25*6 + y*25 + x]) for x in range(25)] for y in range(6)]
    zeroes = 0
    ones = 0
    twos = 0
    if least_zeroes == None:
        least_zeroes = count(layer, 0)
        num = count(layer, 1) * count(layer, 2)
    elif count(layer, 0) < least_zeroes:
        least_zeroes = count(layer, 0)
        num = count(layer, 1) * count(layer, 2)
    img.append(layer)
print(1, num)

def pretty(result):
    for row in result:
        for c in row:
            print(('\u2588' if c == 1 else ' '), end='')
        print("")

result = img[0]

for layer in img[1:]:
    for x in range(25):
        for y in range(6):
            if result[y][x] == 2:
                result[y][x] = layer[y][x]
print(2)
pretty(result)