#259. 寻找

寻找

题目描述

AA想生成一个长度为n的排列。不同的排列会产生不同的收益,具体规则如下:

  • 1,若在序列AA的第ii个位置填jjAi=jA_i =j),则会产生大小为Bi,jB_{i,j}的收益。其中BB将以矩阵形式作为输入给出。

  • 2,若AxA_xAyA_y的和大于kk,则会产生大小为PP的收益。其中xxyykkPP由输入数据给出。

最终的收益为排列AA在规则1122下的收益总和。

AA希望总收益最小。她想知道,最小的总收益是多少?

输入格式

第一行一个正整数nn,其含义见题目描述。

接下来nn行每行nn个正整数,其中第ii行第jj个数Bi,jB_{i,j} 表示在序列AA的第ii个位置填jjAi=jA_i =j)的收益。

接下来一行,一个非负整数QQ,表示规则22QQ组。

接下来Q行每行四个正整数,xxyykkPP。含义为若AxA_xAyA_y 的和大于kk,则会产生大小为PP的收益。

输出格式

输入只有一行,一个正整数,表示最小的总收益。

样例 #1

样例输入 #1

3
2 1 2 
2 1 2 
2 2 3 
2
3 2 2 2
3 2 1 3

样例输出 #1

10

样例 #2

样例输入 #2

4
3 3 3 3 
2 4 3 2 
1 1 1 3 
2 3 3 4 
2
3 1 3 4
2 3 1 3

样例输出 #2

12

【数据范围】

对于测试点1~5: Q=0Q = 0

对于测试点6~10: Q=20Q = 20

对于测试点1、6: n6n \leq 6

对于测试点2、7: n8n \leq 8

对于测试点3、8: n10n \leq 10

对于测试点1~10:保证数据满足1x,yn111\leq x,y \leq n \leq 110k,Bi,j,P1090 \leq k, B_{i,j} , P\leq 10^9