34 lines
797 B
Python
Executable File
34 lines
797 B
Python
Executable File
#!/usr/bin/env python3
|
|
from useful import *
|
|
import easyocr
|
|
|
|
i = 1
|
|
s = {}
|
|
x = 1
|
|
for l in lines(open(0)):
|
|
s[i] = x
|
|
if l.split()[0] == 'addx':
|
|
i += 1
|
|
s[i] = x
|
|
x += int(l.split()[1])
|
|
i += 1
|
|
else:
|
|
i += 1
|
|
print(sum(i * (s[i] if i in s else s[i-1]) for i in range(20, 221, 40)))
|
|
|
|
w, h = 40, 6
|
|
paper = np.zeros((h, w))
|
|
for (y, x), _ in np.ndenumerate(paper):
|
|
if (s[y*w+x+1] - x)**2 < 2:
|
|
paper[y,x] = 1
|
|
|
|
if len(sys.argv) > 1 and sys.argv[1] == '-v':
|
|
print('\n'.join([
|
|
''.join(['#' if c else ' ' for c in l])
|
|
for l in paper]), file=sys.stderr)
|
|
|
|
eor = easyocr.Reader(('en',))
|
|
pray = eor.readtext(np.pad(paper, (42, 42)).astype('uint8') * 255)
|
|
text = re.sub(r'[^A-Z]', '', ''.join([s for (_, s, _) in pray]))
|
|
print(text)
|