3035: 选课

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:0 解决:

题目描述

小G非常喜欢学习,热衷于刷GPA。新的学期开始,他又要开始挑选课程,以便刷分了。

他的课业计划中共包含 n 项课程,每项课程都需要在 m 周中的某一周完成。课程与周数都从 1 开始编号。

一些课程有前置课程,对于所有的 i (1 ≤ i ≤ k),ai 是 bi 的前置课程。也就是修完 ai 才能修 bi

相同的课程在不同周可能会由不同教授授课,不同教授会影响小G在这门课上的分数。

我们用一个数组 xi,j 来描述这个信息,对于每项课程i和周数j,xi,j 表示在第 j 周修第 i 门课所能得到的分数。如果 xi,j = -1 则说明那周不能修这门课。

一周中可以修多门课,而一门课需要用一整周的时间才算修完。

请帮助小G修完所有课程,并使得他得到分数的平均值最大吧。

输入

第一行三个整数 n, m, k,表示课程数、总周数与前置课程关系数。

接下来 n 行,每行 m 个整数,第 i 行第 j 个数表示 xi,j

接下来 k 行,每行包含两个整数 ai, bi

输出

输出一个实数,表示所能得到的 n 门课程分数平均值的最大值。答案保留两位小数。

样例输入 复制

[Sample 1]
3 2 2
70 100
100 80
100 90
1 2
1 3

[Sample 2]
4 5 4
20 -1 100 -1 -1
100 30 -1 -1 -1
100 -1 30 20 40
100 30 40 50 20
1 2
1 3
2 4
3 4

样例输出 复制

[Sample 1]
80.00

[Sample 2]
32.50

提示

【样例解释】

数据一:第一周修课程一,第二周修课程二和三。

数据二:第一周修课程一,第二周修课程二,第三周修课程三,第四周修课程四。

【数据范围】

30%的数据:n, m, k ≤ 7

另有30%的数据:一门课最多一门前置课程。

100%的数据:1 ≤ n, m ≤ 100, 0 ≤ k ≤ 100, -1 ≤ xi,j ≤ 100, 1 ≤ ai, bi ≤ n.

保证任意的前置课程关系不会出现两次,数据至少有一组合法解。