-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path11.py
More file actions
executable file
·51 lines (50 loc) · 1.72 KB
/
11.py
File metadata and controls
executable file
·51 lines (50 loc) · 1.72 KB
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
50
51
import time
f = open('11input.txt', 'r')
data = f.read()
f.close()
data = data.replace(' ', '')
data = data.replace('\n', '')
square = []
sum = 0
temp = 0
starttime = time.time()
for i in range(0, 800, 2):
square.append(int(data[i:i + 2]))
for i in range(0, 400):
if i == 0:
i += 1
# vertical down
if i <= 339: # all but last three rows - going down
temp = square[i] * square[i + 20] * square[i + 40] * square[i + 60]
if temp > sum:
sum = temp
else: # only last three rows - going up
temp = square[i] * square[i - 20] * square[i - 40] * square[i - 60]
if temp > sum:
sum = temp
if i % 20 <= 16: # all but last 3 columns, going right
temp = square[i] * square[i + 1] * square[i + 2] * square[i + 3]
if temp > sum:
sum = temp
else: # only last 3 columns, going left
temp = square[i] * square[i - 1] * square[i - 2] * square[i - 3]
if temp > sum:
sum = temp
if (i <= 339) and (i % 20 <= 16): # diag right down
temp = square[i] * square[i + 21] * square[i + 42] * square[i + 63]
if temp > sum:
sum = temp
if (i <= 339) and (i % 20 >= 3): # diag left down
temp = square[i] * square[i + 19] * square[i + 38] * square[i + 57]
if temp > sum:
sum = temp
if (i >= 57) and (i % 20 <= 16): # diag right up
temp = square[i] * square[i - 21] * square[i - 42] * square[i - 63]
if temp > sum:
sum = temp
if (i >= 57) and (i % 20 >= 3): # diag left up
temp = square[i] * square[i - 19] * square[i - 38] * square[i - 57]
if temp > sum:
sum = temp
print(sum)
print('Time :', time.time() - starttime)