方格列号、行号都在 1 到 1000 之间。边长为 s 的框就是连续 s 列、连续 s 行。s 越大越容易凑够 k 件,因此可以二分最小的 s。
冷链仓被切成边长为 1 的方格。仓内摆着 p 件货,每件独占一格,位置用列号、行号标出。
巡检只允许框一次。这个框是边长为 s 的正方形,里面正好盖住 s2 个完整方格,框中的货会一次读完。框越大越费电。请在读到的货不少于 k 件的前提下,求出最小的 s。
首行给出正整数 k。
第二行给出正整数 p。数据满足 1≤k≤p≤100000。
第三行有 p 个正整数 c1,c2,…,cp,依次是各件货的列号。
第四行有 p 个正整数 r1,r2,…,rp,依次是各件货的行号。数据满足 1≤ci,ri≤103,且任意两件货不在同一格。
单独一行写出一个正整数,即最小边长 s。
输入
3
4
2 3 2 9
1 1 2 9
输出
2
说明
四件货的位置是 (2,1)、(3,1)、(2,2)、(9,9),括号里先写列、再写行。
前三件落在列 2 到 3、行 1 到 2,用边长 2 的框就能盖住,件数达到 k=3。边长 1 只能盖住一格,最多一件货,不够。
输入
2
3
4 4 8
1 3 1
输出
3
说明
三件货位于 (4,1)、(4,3)、(8,1)。
(4,1) 与 (4,3) 同列,行号相差 2,盖住它们需要行 1,2,3 共 3 格,边长为 3。
另外两对的列号跨度更大,边长分别为 5 和 5。因此最小边长是 3。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册