My issue
partially correct .few test cases no passed
My code
# cook your dish here
t = int(input())
for _ in range(t):
s = input()
arr = [[0]*5001 for _ in range(5001)]
q = int(input())
pq = [list(map(int, input().split())) for _ in range(q)]
n = len(s)
for i in range(n):
ct = 0
prev = i
for j in range(i, n):
if s[j] == '(':
ct += 1
else:
if ct > 0:
ct -= 1
else:
ct = 0
prev = j + 1
if ct == 0:
arr[i][j] = max(arr[i][j], j - prev + 1)
for i in range(1, n):
for j in range(n - i):
k = j + i
prev = j if j == n - 1 else j + 1
nxt = n - 1 if k - 1 >= n else k - 1
arr[j][k] = max(max(arr[j][k], arr[j][nxt]), max(arr[prev][k], arr[prev][nxt]))
for x in pq:
print(arr[x[0] - 1][x[1] - 1], end=" ")
print()
Learning course: Python with Data structures
Problem Link: CodeChef: Practical coding for everyone