maximum sum path in an N×N grid

Added: 2025-09-12 23:42:15

Question Image

maximum sum path in an N×N grid

Answer

✏️ Edit
def solve():
    n = int(input())
    blocks = set()
    
    for _ in range(n):
        x, y = map(int, input().split())
        blocks.add((x, y))
    
    if (1, 1) in blocks or (n, n) in blocks:
        return "NO"
    
    dp = [[False] * (n + 1) for _ in range(n + 1)]
    dp[1][1] = True
    
    for i in range(1, n + 1):
        for j in range(1, n + 1):
            if (i, j) in blocks:
                continue
            if i > 1 and dp[i-1][j]:
                dp[i][j] = True
            if j > 1 and dp[i][j-1]:
                dp[i][j] = True
    
    return "YES" if dp[n][n] else "NO"

t = int(input())
for _ in range(t):
    print(solve())