#!/usr/bin/env python pay = [] path = [] best = [] con = ( (0,1,3), (0,1,2,4), (1,2,5), (0,3,4,6), (1,3,4,5,7), (2,4,5,8), (3,6,7), (4,6,7,8), (5,7,8) ) for i in range(30): path.append( [] ) best.append( [] ) for j in range(9): path[i].append( 0 ) best[i].append( 0 ) for p in open('p.in'): pay.append( [ int(x) for x in p.split() ] ) best[0][0] = max(pay[0][0],0) print best[0] print pay[0] print for turn in range(1,9): for cas in range(9): best[turn][cas] = max( [ best[turn-1][near] + pay[turn][cas] for near in con[cas]] ) print 'b:',best[turn] print 'p:',pay[turn] print