#320. 取数游戏

传统 1000 ms 256 MiB
标准 IO
文本比较 mollnnFan 标签

题目描述

n(n+1)2\frac {n(n+1)} {2} 个数排成高度为 nn 的三角形,从上往下数第 ii 行恰好有 ii 个数。下面是一个 1010 个数排成高度为 44 的三角形的示例:

     1   
   2   3 
 4   5   6
7  8   9  10

我们用 ai,j(jin)a_{i,j} (j \le i \le n) 来表示第 ii 行第 jj 列的数,例如在上面的例子中,a3,2=5a_{3,2}=5

取数的过程是从上往下进行的,因此一个数可以被取走,当且仅当它的左上角和右上角的位置都没有数,或者有数已经被取走。

例如在上面的例子中,要想取走 55,必须先取走 2233;要想取走 33,必须先取走 11;而 11 可以直接取走,不必在此之前先取走任何其它数。

现在给定一个 kk,你需要从三角形中取走至多 kk 个数,使得取走的所有数中的最小值尽可能小,你需要输出这个最小值。

输入格式

第一行共两个正整数 n(1n500)n (1 \le n \le 500)k(1kn(n+1)2)k (1 \le k \le \frac {n(n+1)} 2)

接下来 nn 行,第 ii 行有 ii 个正整数,分别表示 ai,1,ai,2,...,ai,i(1ai,j3000)a_{i,1},a_{i,2},...,a_{i,i} (1 \le a_{i,j} \le 3000)

输出格式

输出一行一个整数,表示取走的数中的最小值的最小值。

样例

输入样例

4 3
9
8 7
6 5 4
3 2 1 1

输出样例

4