summaryrefslogtreecommitdiff
path: root/011.py
diff options
context:
space:
mode:
Diffstat (limited to '011.py')
-rw-r--r--011.py50
1 files changed, 50 insertions, 0 deletions
diff --git a/011.py b/011.py
new file mode 100644
index 0000000..4fff9d4
--- /dev/null
+++ b/011.py
@@ -0,0 +1,50 @@
+
+numbers = []
+
+f = open('011.txt', 'r')
+for line in f:
+ line.rstrip('\n')
+ line_str = line.split(' ')
+ line_int = [ int(x) for x in line_str ]
+ numbers.append(line_int)
+f.close()
+
+
+def find_down():
+ max = 0
+ for i in range(0, 17):
+ for j in range(0, 20):
+ product = numbers[i][j] * numbers[i+1][j] * numbers[i+2][j] * numbers[i+3][j]
+ if product > max:
+ max = product
+ return max
+
+def find_right():
+ max = 0
+ for i in range(0, 20):
+ for j in range(0, 17):
+ product = numbers[i][j] * numbers[i][j+1] * numbers[i][j+2] * numbers[i][j+3]
+ if product > max:
+ max = product
+ return max
+
+def find_diagonal1():
+ max = 0
+ for i in range(0, 17):
+ for j in range(0, 17):
+ product = numbers[i][j] * numbers[i+1][j+1] * numbers[i+2][j+2] * numbers[i+3][j+3]
+ if product > max:
+ max = product
+ return max
+
+def find_diagonal2():
+ max = 0
+ for i in range(0, 17):
+ for j in range(0, 17):
+ product = numbers[i][19-j] * numbers[i+1][18-j] * numbers[i+2][17-j] * numbers[i+3][16-j]
+ if product > max:
+ max = product
+ return max
+
+print max(find_down(), find_right(), find_diagonal1(), find_diagonal2())
+