题目描述
两个人的花环上一共有 n种花。首先,Vani会煞有介事地向妹子解释说某两种花配对的
话有着怎样的意义,并且 Vani会解释清楚所有 Cn2个配对的含义。严格地说,Vani声明了一
个整数矩阵 A, Aij的值表示花i和花 j配对的话会增加的花环的契合度。这个值如果是正
的,就表示这样配对有着正面意义,否则表示负面意义。显然对于任意的1<=i,j<=n,有
Aij=Aji。
之后,Vani必须考虑自己的理论的可信度。Vani觉得,只有i=1∑nj=1∑nAij=0,并且对于
任意的1<=i,j<=n,都满足 Lij<=Aij<=Rij,他的一套说辞才是可信的。所以,Vani必须使得
自己的解释满足条件。
Vani发现两人的花环上花朵的数目相同,并且都有一个蝴蝶结。于是他从蝴蝶结开始
沿顺时针方向将花朵编号,并且将两个花环对应位置上的花朵进行比较。每出现一个花朵对
(i,j),两个花环之间的契合度就会增加 Aij。由于花环是确定的,你的任务就是帮助 Vani
确定一个满足要求的矩阵 A,使得两个花环的契合度达到最大。Vani向你保证一定存在一
个满足全部要求的矩阵 A,并且你只需要给出最大可能的契合度。注意这个最大的契合度
也有可能是 0甚至是负数。
输入格式
显然,花环上花朵的排布并不重要,这个问题需要的只是各个花朵对的数目。于是我们
将按照以下格式给出所需的信息。
输入文件的行从 1开始标号。
第一行包含一个整数 n,表示花朵的种类数。
之后 n行,每行n个整数。第i行第 j个整数为k就表示花朵对(i−1,j)出现了k次。
之后 n行,每行n个整数。第i行第 j个整数为k就表示 L(i−n−1)j=k。
之后 n行,每行n个整数。第i行第 j个整数为k就表示 L(i−2n−1)j=k。
输出格式
输出一个整数,表示最大可能的契合度。
样例
输入样例
4
7 0 1 0
0 0 0 0
1 0 0 0
0 0 0 0
1 -10 -10 -10
-10 1 -10 -10
-10 -10 1 -10
-10 -10 -10 1
10 10 10 10
10 10 10 10
10 10 10 10
10 10 10 10
输出样例
90
提示
对于 20%的数据,满足 n<=5,−10<=Lij<Rij<=10。
对于 50%的数据,满足 n<=50,−100<=Lij<Rij<=100。
对于 100%的数据,满足 4<=n<=500,−10000<=Lij<Rij<=10000,对于任意的
1<=i,j<=n,满足 max(Lij,Lji)min(Rij,Rji)。花朵对的数目不为负,且不大于 100000。