编程题
### 问题描述
学习是一条永无止境的路,一个无限延伸的旅程。在这个不断变化的世界里,学习已经成为了每个人必须面对的挑战。无论你是谁,你都需要时刻保持学习的状态,以跟上时代的步伐,不断提升自己的技能和知识。
蓝桥最近新推出一个“蓝桥云树”的产品,帮助大家学习 IT 编程的知识。
首先是最基础的课程——《C 语言程序设计》,任何学生进入“蓝桥云树”时,都必须先学这门课程,学完之后就可以自主选择接下去的内容之一。
值得注意的是,学习任何课程后都需要等待一定的时间才可以开启下门课程的学习,且任何课程只有一条学习路径才能到达,所以学习路径是一棵树!
假设学生刚刚学完初始课程《C 语言程序设计》,还拥有 $x$ 分的学习时间,他最多可以学习多少门课程?
### 输入格式
首先是一个整数 $N$,表示课程的数量(含初始课程)。
接着是 $N - 1$ 行,每一行是三个数字 $i$、$j$、$d$,表示学完第 $i$ 门课程后,需要等待 $d$ 分时间后,才可以学习 第 $j$ 门课程。
课程的编号从 $0$ 到 $N - 1$。
接着输入一个整数 $q$,代表查询的数量。
后跟 $q$ 行,每行一个整数 $x$,代表学生拥有 $x$ 分钟的时间。
### 输出格式
对于每个查询例子,输入一个整数,即学生还能够学完的最多课程数(不含初始课程)。
### 样例输入
```text
3
1 0 5
2 0 3
3
3
10
11
```
### 样例输出
```text
2
2
3
```
### 评测数据规模
对于所有评测数据,$2 \lt n \lt 500,1 \le d \le 10000,0 \le x \le 5000000,1 \le q \le 1000$。