小慕正在开发一个由 n 个微服务组成的系统,每个服务的启动可能存在依赖关系(有些服务可以独立启动),同时每个服务自身启动加载也需要一定时间。 给定一个 n×n 的二维矩阵 useTime,其中 表示服务 i 自身启动加载需要 10 秒,useTime[i][j] = 1 表示服务 i 启动依赖于服务 j 先启动完成,useTime[i][k] = 0 表示服务 i 启动不依赖于服务 k。其中 0 ≤ i, j, k < n。 服务之间的依赖关系不存在循环依赖(即没有环)。现在小慕希望对任意一个服务 i 进行集成测试(服务 i 自身也需要加载),请问最少需要等待多少时间才能开始测试?
提示:带虚线的词点一下有通俗解释。
输入描述
第一行输入服务总量 n,之后的 n 行表示服务启动的依赖关系以及自身启动加载耗时 最后输入 k 表示计算需要等待多少时间后可以对服务 k 进行集成测试 其中 1 <= k <= n,1<=n<=100
输出描述
最少需要等待多少时间(s)后可以对服务 k 进行集成测试
示例
示例 1
输入
3 5 0 0 1 5 0 0 1 5 3
输出
15
说明:服务3 启动依赖服务2,服务 2 启动依赖服务 1,由于服务 1,2,3 自身加载需要消耗 5s,所以 5+5+5=15,需等待 15s 后可以对服务 3 进行集成测试
示例 2
输入
3 5 0 0 1 10 1 1 0 11 2
输出
26
说明:服务 2 启动依赖服务 1 和服务 3,服务 3 启动需要依赖服务 1,服务 1,2,3 自身加载需要消耗 5s,10s,11s,所以 5+10+11=26,需等待 26s 后可以对服务 2 进行集成测试
示例 3
输入
4 2 0 0 0 0 3 0 0 1 1 4 0 1 1 1 5 4
输出
12
说明:服务 3 启动依赖服务 1 和服务 2,服务 4 启动需要依赖服务 1,2,3,服务 1,2,3,4 自身加载需要消耗 2s,3s,4s,5s,所以 3+4+5=12s(因为服务 1 和服务 2 可以同时启动),需等待 12s 后可以对服务 4 进行集成测试
示例 4
输入
5 1 0 0 0 0 0 2 0 0 0 1 1 3 0 0 1 1 0 4 0 0 0 1 1 5 5
输出
11
说明:服务 3 启动依赖服务 1 和服务 2,服务 4 启动需要依赖服务 1,2,服务 5 启动需要依赖服务 3,4,服务 1,2,3,4,5 自身加载需要消耗 1s,2s,3s,4s,5s,所以 2+4+5=11s(因为服务 1 和服务 2 可以同时启动,服务 3 和服务 4 可以同时启动),需等待 11s 后可以对服务 5 进行集成测试
时间限制 1000 ms · 内存限制 128 MB