39 lines
792 B
Python
39 lines
792 B
Python
#!/usr/bin/python
|
|
|
|
import re
|
|
|
|
RE_PARSE = re.compile(r'.* (\d+),.* (\d+).$')
|
|
|
|
def read_file(filename):
|
|
file = open(filename, 'r')
|
|
while True:
|
|
line = file.readline()
|
|
if not line:
|
|
break
|
|
yield line
|
|
|
|
|
|
def get_position(row, col):
|
|
triangle = (row + col-1) * (row + col) / 2
|
|
return triangle - row + 1
|
|
|
|
|
|
def main():
|
|
code_first = 20151125
|
|
code_mul = 252533
|
|
code_mod = 33554393
|
|
|
|
for line in read_file('input'):
|
|
match = re.match(RE_PARSE, line)
|
|
row = int(match.group(1))
|
|
col = int(match.group(2))
|
|
code = code_first
|
|
iterations = get_position(row, col)
|
|
for x in range(iterations-1):
|
|
code = (code * code_mul) % code_mod
|
|
print code
|
|
|
|
if __name__ == "__main__":
|
|
main()
|
|
|