#P1013. 2022.9.17-栈の合并

2022.9.17-栈の合并

题目内容

塔子哥刚学完栈这个数据结构,觉得非常的神奇。现在作为acm的预选队员之一,他被学长的一个问题给问趴下了。三天没有任何进展,你能帮帮他吗?

“栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。

塔子哥拿到了两个栈,现在需要将两个栈里面的元素合并为一个n排列。(也就是1~n各出现一次)

现在塔子哥允许有两个操作:

1.选择其中一个栈并弹出栈顶。但是被弹出的元素必须要是两个栈之间的最小值

2.将其中一个栈的栈顶元素弹出,之后放入另外一个栈的栈顶。

求能够完成任务最小操作次数

输入描述

第一行为nnsz1sz_1,sz2sz_2nn即为要组成的nn排列大小,sz1sz_1,sz2sz_2为两个栈的大小,其中0<n<10000<n<1000,sz1+sz2=nsz_1+sz_2=n

第二行sz1sz_1个整数d(0<d<=n)d(0<d<=n),表示第一个栈从栈底到栈顶的sz1sz_1个元素

第三行sz2sz_2个整数d(0<d<=n)d(0<d<=n),表示第二个栈从栈底到栈顶的sz2sz_2个元素

样例

输入

4 2 2
1 3
4 2

输出

6