# Yet Another Xinversion !

The problem statement is simple. You are given a rooted tree (1 is the root) and every node has a co…

If you need help solving this problem, mention your approach and ask specific questions. Please avoid sharing your code and asking the Community to figure out “what’s wrong”.

I am getting a runtime error and I cannot for the life of me understand why it might be the case. Can someone help me?

class TreeNode: # creating a class to create a node

``````def __init__(self, value, cost):
self.value = value
self.children = []
self.cost = cost
self.parent = None

def add_child(self, child): # to add a child node
self.children.append(child)
child.parent = self

def add_cost(self, cost): # to do operation 1
self.cost = cost

def xinverse(self): # to do operation 2
count = 0
for child in self.children:
if child.cost > self.cost: # checks if child is valid
count += 1
count += child.xinverse() # repeats the process for the children of the child nodes
# answer stored in the main variable count
return count
``````

# taking basic inputs and building the tree from the root node 1 up to the leaf nodes

N, Q = map(int, input().split(’ ‘))
costs = list(map(int, input().split(’ ')))

for n in range(N):
vars()[f’node_{n+1}'] = TreeNode(n+1, costs[n])

for i in range(N-1):
inp_objects = list(map(int, input().split(’ ‘)))
if inp_objects[0] < inp_objects[1]: