using
System;
using
System.Collections.Generic;
class
GFG
{
static
int
findSmallestAfterDel(
int
[]arr,
int
m,
int
[]del,
int
n)
{
Dictionary<
int
,
int
> mp =
new
Dictionary<
int
,
int
>();
for
(
int
i = 0; i < n; ++i)
{
if
(mp.ContainsKey(del[i]))
{
mp[del[i]] = mp[del[i]] + 1;
}
else
{
mp.Add(del[i], 1);
}
}
int
smallestElement =
int
.MaxValue;
for
(
int
i = 0; i < m; ++i)
{
if
(mp.ContainsKey(arr[i]))
{
mp[arr[i]] = mp[arr[i]] - 1;
if
(mp[arr[i]] == 0)
mp.Remove(arr[i]);
}
else
smallestElement = Math.Min(smallestElement,
arr[i]);
}
return
smallestElement;
}
public
static
void
Main(String[] args)
{
int
[]array = { 5, 12, 33, 4, 56, 12, 20 };
int
m = array.Length;
int
[]del = { 12, 4, 56, 5 };
int
n = del.Length;
Console.WriteLine(findSmallestAfterDel(array, m,
del, n));
}
}