import
java.io.*;
class
GFG{
static
int
LowerBound(
int
a[],
int
k,
int
x)
{
int
l = -
1
;
int
r = k;
while
(l +
1
< r)
{
int
m = (l + r) >>>
1
;
if
(a[m] >= x)
{
r = m;
}
else
{
l = m;
}
}
return
r;
}
static
int
findLCS(
int
[] nums,
int
N)
{
int
k =
0
;
for
(
int
i =
0
; i < N; i++)
{
int
pos = LowerBound(nums, k,
nums[i]);
nums[pos] = nums[i];
if
(k == pos)
{
k = pos +
1
;
}
}
return
k;
}
static
int
minimumCost(
int
[] A,
int
[] B,
int
M,
int
N,
int
C)
{
int
[] nums =
new
int
[
100000
];
int
[] index =
new
int
[
100000
];
for
(
int
i =
0
; i <
100000
; i++)
index[i] = -
1
;
for
(
int
i =
0
; i < N; i++)
{
index[B[i]] = i;
}
int
k =
0
;
for
(
int
i =
0
; i < M; i++)
{
if
(index[A[i]] != -
1
)
{
nums[k++] = index[A[i]];
}
}
int
lcs_length = findLCS(nums, k);
int
elements_to_be_added = N - lcs_length;
int
min_cost = elements_to_be_added * C;
System.out.println( min_cost);
return
0
;
}
public
static
void
main(String[] args)
{
int
[] A = {
1
,
6
,
3
,
5
,
10
};
int
[] B = {
3
,
1
,
5
};
int
C =
2
;
int
M = A.length;
int
N = B.length;
minimumCost(A, B, M, N, C);
}
}