-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path011.py
More file actions
103 lines (83 loc) · 3.46 KB
/
011.py
File metadata and controls
103 lines (83 loc) · 3.46 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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
#!python
problem = """
In the 20×20 grid below, four numbers along a diagonal line have been marked in red.
08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08
49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00
81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65
52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91
22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80
24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50
32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70
67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21
24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72
21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95
78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92
16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57
86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58
19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40
04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66
88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69
04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36
20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16
20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54
01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48
The product of these numbers is 26 × 63 × 78 × 14 = 1788696.
What is the greatest product of four adjacent numbers in the same direction (up, down, left, right, or diagonally) in the 20×20 grid?
https://projecteuler.net/problem=11
"""
print(problem)
from datetime import datetime
dateTimeObj = datetime.now()
print(dateTimeObj)
numlines=0
list_of_lists = []
with open('011-data.txt') as f:
for line in f:
numlines+=1
inner_list = [int(elt.strip()) for elt in line.split(' ')]
inner_list = [0,0,0] + inner_list + [0,0,0]
whutsthelength = len(inner_list)
# print(inner_list)
list_of_lists.append(inner_list)
i=0
newline = []
while i < whutsthelength:
newline=[0] + newline
i+=1
list_of_lists.append(newline)
list_of_lists.append(newline)
list_of_lists.append(newline)
keeporient,topproduct="none",0
def keep_the_product():
global keeporient, topproduct
global i1,i2,i3,i4,j1,j2,j3,j4,thisorient
global keepi1,keepi2,keepi3,keepi4,keepj1,keepj2,keepj3,keepj4
test_product=list_of_lists[i1][j1] * list_of_lists[i2][j2] * list_of_lists[i3][j3] * list_of_lists[i4][j4]
if test_product > topproduct:
topproduct,keeporient=test_product,thisorient
keepi1,keepi2,keepi3,keepi4=i1,i2,i3,i4
keepj1,keepj2,keepj3,keepj4=j1,j2,j3,j4
j=3
while j < whutsthelength-3:
i=0
while i < numlines:
i1,i2,i3,i4,j1,j2,j3,j4,thisorient = i, i, i, i, j, j+1, j+2, j+3, "Right"
keep_the_product()
i1,i2,i3,i4,j1,j2,j3,j4,thisorient = i, i+1, i+2, i+3, j, j, j, j, "Down"
keep_the_product()
i1,i2,i3,i4,j1,j2,j3,j4,thisorient = i, i+1, i+2, i+3, j, j+1, j+2, j+3, "Diagonal Down-Right"
keep_the_product()
i1,i2,i3,i4,j1,j2,j3,j4,thisorient = i, i+1, i+2, i+3, j, j-1, j-2, j-3, "Diagonal Down-Left"
keep_the_product()
i+=1
j+=1
print()
print( keeporient )
print( "Coordinates and values")
print( "(",keepi1,",",keepj1-3,") = ",list_of_lists[keepi1][keepj1] )
print( "(",keepi2,",",keepj2-3,") = ",list_of_lists[keepi2][keepj2] )
print( "(",keepi3,",",keepj3-3,") = ",list_of_lists[keepi3][keepj3] )
print( "(",keepi4,",",keepj4-3,") = ",list_of_lists[keepi4][keepj4] )
print("product: ", topproduct)
dateTimeObj = datetime.now()
print(dateTimeObj)