WLDRPL Wildcard Replacement - CodeChef Solution


Recursion hard

Python Code:

import sys
sys.setrecursionlimit(10**8)
total_input=int(input())
for _ in range(total_input):
    s=input()
    dic={}
    def do(ini,s):
        idx,maxx,minn,sign=ini+1,0,0,True
        
        while s[idx]!=')':
            char=s[idx]
            if char=='?':
                if sign:maxx+=1
                else:minn+=1
            elif char=='+' :sign=True
            elif char=='-' :sign=False
            elif char=='(':
                arr=do(idx,s)
                if sign:
                    maxx+=arr[0]
                    minn+=arr[1]
                else:
                    maxx+=arr[1]
                    minn+=arr[0]
                idx=arr[2]
            idx+=1
        dic[ini]=maxx
        return [maxx,minn,idx]

    do(0,s)
        
    ques=int(input())
    ans=[]
    for __ in range(ques):
        ini,fin=map(int,input().split())
        if ini==fin:ans.append(1)
        else:ans.append(dic[ini-1])
    print(*ans)


Comments

Submit
0 Comments
More Questions

1585C - Minimize Distance
1506E - Restoring the Permutation
1539A - Contest Start
363D - Renting Bikes
1198D - Rectangle Painting 1
1023B - Pair of Toys
1725A - Accumulation of Dominoes
1675E - Replace With the Previous Minimize
839A - Arya and Bran
16B - Burglar and Matches
1625B - Elementary Particles
1725G - Garage
1725B - Basketball Together
735A - Ostap and Grasshopper
1183B - Equalize Prices
1481A - Space Navigation
1437B - Reverse Binary Strings
1362B - Johnny and His Hobbies
1299A - Anu Has a Function
1111A - Superhero Transformation
954A - Diagonal Walking
39F - Pacifist frogs
1451C - String Equality
386A - Second-Price Auction
1690E - Price Maximization
282B - Painting Eggs
440A - Forgotten Episode
233B - Non-square Equation
628B - New Skateboard
262B - Roma and Changing Signs