Problem
Vers 需要准备一份关于最后一次出击的报告。她已经在脑海里写好了文字,剩下的就是写下来了。该报告将由两部分组成:第一部分将包含 n
个单词, i
其中包含 ai< /code>字母,第二个— m
个单词,第 j
个单词由 bj
个字母组成。克里亚语不包含任何标点符号。 Vers 必须将报告写在方格纸卷上,w
单元格宽度。由于报告由两部分组成,她将用一条垂直线将卷筒分成整个宽度的两部分,然后她将第一部分写在左侧,然后在右侧——第二。
报告的两部分都以相同的方式编写,每个部分都在卷轴上。单词的一个字母恰好占据一个单元格。第一个单词写在卷的第一行,从这部分卷的最左边的单元格开始。如果可能的话,每个下一个单词都应该与前一个单词写在同一行上,并与前一个单词恰好用一个空单元格分开。
否则,它写在下一行,从最左边的单元格开始。如果卷的一部分的宽度小于该部分应该写的某个字的长度,则不可能在这样宽度的卷的一部分上写这部分报告。
保证可以画竖线,这样报告的两部分都可以写。 Vers 想画一条垂直线,使足以写报告的卷的长度最小。帮助她找到最小长度。
<分区>
输入:
- 第一行包含三个整数 w
、n
和 m
— roll width,报告第一部分和第二部分的字数(\(1 <= w <= 10^9\); \(1 <= n, m <= 100 000\));
- 下一行给出 n
个整数 ai
—报告第一部分第i个词的长度\(1 <= a_i <= 10^9\);
- 下一行给出 m
个整数 bj
—报告第二部分第j
个单词的长度\(1 <= b_j <= 10^9\)。
保证可以画一条线,这样报告的两部分都可以写
输入:在一行中打印一个整数 —卷的最小长度,足以写一份报告。
例子
<头>
<日>#日>
输入 |
输出 |
东西>
<正文>
1 |
15 6 6
2 2 2 3 2 2
3 3 5 2 4 3
|
3 |
表>
注意
在样本测试中,通过在第 7 列和第 8 列单元格之间画一条线,然后在报告的两部分中每行写两个词,可以将卷分为两部分。