Tags: algorithms logic 

Rating:


```
from pwn import *

def a(grid):
gridSize = len(grid);
#print(gridSize)
sol = []
for i in range(gridSize):
sol.append(grid[i][gridSize-1])

for i in range(gridSize-2,-1,-1):
# Traverse down
sol[0] += grid[0][i];

for j in range(1, gridSize):
sol[j] = min(sol[j - 1] + grid[j][i], sol[j] + grid[j][i]);

#Traverse up
for j in range(gridSize-2,-1,-1):
sol[j] = min(sol[j], sol[j+1] + grid[j][i]);
return min(sol)

n=7
mat=[]
conn = remote('110.10.147.104', 15712)
conn.recvuntil("seconds....>>")
conn.send('G\r\n')
ans=""
for i in range(100):
conn.recvuntil("***")
print(conn.recvline())
for i in range(n):
mat.append([int(i) for i in list(filter(None, conn.recvline().decode().strip().split(" ")))])
conn.recvuntil(">>")
#print(mat)
res=a(mat)
print(res)
ans+=chr(res)
conn.send(str(res)+"\r\n")
mat=[]
#print(conn.recvline())

print(ans)
print("Base64 Decode the ans.")
```