**Problem Description**

Given a tree with **N** nodes labelled from **1** to **N**.

Each node is either **good** or **bad** denoted by binary array **A** of size **N** where if **A[i]** is **1** then **i ^{th}node** is

Also the given tree is rooted at node **1** and you need to tell the number of **root to leaf** paths in the tree that contain not more than **C** good nodes.

**NOTE:**

- Each edge in the tree is
**bi-directional**.

2 <= N <= 10^{5}

A[i] = 0 or A[i] = 1

0 <= C <= N

First argument is an binary integer array **A** of size **N**.

Second argument is a 2-D array **B** of size **(N-1) x 2** denoting the edge of the tree.

Third argument is an integer **C**.

Return an integer denoting the number of **root to leaf** paths in the tree that contain not more than **C** good nodes.

Input 1:

A = [0, 1, 0, 1, 1, 1] B = [ [1, 2] [1, 5] [1, 6] [2, 3] [2, 4] ] C = 1

Output 1:

3

Explanation 1:

Path (1 - 2 - 3) and (1 - 5) and (1 - 6) are the paths which contain atmost C nodes.

NOTE:You only need to implement the given function. Do not read input, instead use the arguments to the function. Do not print the output, instead return values as specified. Still have a doubt? Checkout Sample Codes for more details.

- Hint 1
- Solution Approach
- Complete Solution

Loading...