-
Notifications
You must be signed in to change notification settings - Fork 0
/
25.advent.py
52 lines (43 loc) · 1.21 KB
/
25.advent.py
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
from inputs import TWENTYFIFTH
from pandas import DataFrame
import sys
row = TWENTYFIFTH.row
col = TWENTYFIFTH.col
first = TWENTYFIFTH.first
def next(prev):
return (prev * 252533) % 33554393
df = DataFrame(index=range(1, row + 1), columns=range(1, col + 1))
df.loc[row, col] = -1
cur_row = 1
last_row = 1
cur_col = 1
last_col = 1
prev = first
df.loc[cur_row, cur_col] = prev
while True:
cur_row = last_row + 1
last_row = cur_row
cur_col = 1
# print 'Current: {} Next: {} @ [{},{}]'.format(prev, next(prev), cur_row,
# cur_col)
# df.loc[cur_row, cur_col] = next(prev)
# prev = df.loc[cur_row, cur_col]
prev = next(prev)
if cur_row == row and cur_col == col:
print prev
sys.exit(1)
while cur_col <= last_col + 1 and cur_row > 1:
cur_col += 1
cur_row -= 1
# print 'Current: {} Next: {} @ [{},{}]'.format(prev, next(prev), cur_row,
# cur_col)
#df.loc[cur_row, cur_col] = next(prev)
#prev = df.loc[cur_row, cur_col]
prev = next(prev)
if cur_row == row and cur_col == col:
print prev
sys.exit(1)
last_col += 1
print 'finished row {}'.format(last_row)
import ipdb
ipdb.set_trace()