F. 鸡煲的爬塔之路

内存限制:256 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

鸡煲正处于“高塔”的一层,这一层由 房间单向通道组成。每个房间 都有价值为 的宝箱,鸡煲每次经过房间都可以获得一次这个房间的宝箱,在每个通道中都有可怕的怪物,经过第 个通道会鸡煲减少 点生命值。 你需要从指定起点 出发,最后回到 ,在高塔中带出的价值尽可能多。 注意回到起点的时候死了也是回到起点,回到起点的时候血量可以为0。

形式化的说: 给定一个有向带权图 ,其中 。每个顶点 拥有一个点权 ,每条边 拥有一个边权 ,给定初始生命值 和起点

定义合法路径 是一个顶点序列 满足:

  • 对于所有 ,存在有向边
  • 路径上所有边的权值之和必须小于 ,即:

输入格式

第一行输入 分别为房间数,边数,生命值,起点。 第二行包含 个整数,表示每个房间中宝箱的价值 。 接下来 行,每行三个整数 ,表示从房间 到房间 有一条消耗 个血量的有向边。

输出格式

输出一个整数,表示在回到 时能获得的最大总价值。

样例

Input

Output

数据范围与提示

, , ,