#THU20202C. 图

图

时间限制: 1.0 秒

空间限制: 512 MB

题目描述

给定一个有 nn 个点,mm 条边的有向图。图中第 ii 个点的价值是 viv_i,每条边有一个代价 zz,不同的边代价可能不一样。

一共有 qq 个询问,每次询问包含两个数字 u,cu, c,表示询问从 uu 点出发,经过代价总和不超过 cc 的边所能到达的点的价值总和的最大值。

如果一个点被多次经过,那么其价值要计算多次。初始节点的价值也要计算进去。

输入格式

从标准输入读入数据。

输入的第一行包含三个由空格隔开的正整数 n,m,qn, m, q,保证 n≤2000n \le 2000 和 m≤8000, q≤105m \le 8000,~q \le 10^5。

接下来的一行包括 nn 个由空格隔开的非负整数 viv_i 表示编号从小到大所有点的价值,保证 vi≤104v_i \le 10^4。

接下来的 mm 行每行包含三个由空格隔开的正整数 x,y,zx, y, z,保证 1≤x,y≤n1 \le x, y \le n 和 1≤z≤301 \le z \le 30,表示存在一条从 xx 到 yy 代价为 zz 的有向边。

接下来的 qq 行每行包含两个由空格隔开的非负整数 u,cu, c,保证 1≤u≤n1 \le u \le n 和 0≤c≤8000 \le c \le 800。

输出格式

输出到标准输出。

对于每次询问输出一个数,表示相应的答案。

4 4 2
3 2 3 4
1 2 1
2 3 1
3 2 2
3 4 1
2 6
3 2
14
7

样例 1 解释

对于第一个询问最优方案是从 22 出发,经过 3,2,3,43, 2, 3, 4 四个点,取得的价值是 2+3+2+3+4=142 + 3 + 2 + 3 + 4 = 14。

对于第二个询问最优方案是从 33 出发,经过 44 这个点,取得的价值是 3+4=73 + 4 = 7。

子任务

对于所有数据,保证:n≤2000, m≤8000, c≤800, q≤105n \le 2000,~m \le 8000,~c \le 800,~q \le 10^5。

本题采用捆绑测试,你只有通过一个子任务中的所有测试点才能得到该子任务的分数。

子任务编号 分值 特殊性质
1 17 n≤5, m≤10, c≤8, q≤8n \le 5,~m \le 10,~c \le 8,~q \le 8
2 23 u=1u = 1
3 25 q≤5q \le 5
4 35 无