배열 정리하기

시간 제한2초메모리 제한128 MB

문제

1 이상 N 이하의 자연수로 이루어진 두 배열 A[1..N]B[1..N]이 있다. 각 인덱스 i에 대해 Swap(i) 연산을 한 번 수행하면 A[i]B[i]의 값을 서로 바꿀 수 있다.

목표는 두 배열을 정리하여 A 안에서도 같은 수가 두 번 이상 나오지 않고, B 안에서도 같은 수가 두 번 이상 나오지 않게 만드는 것이다.

가능한 한 적은 횟수의 Swap 연산으로 목표를 달성하라. 어떤 방법으로도 두 배열을 모두 중복 없이 만들 수 없다면 -1을 출력한다.

입력

첫째 줄에 자연수 N (1 <= N <= 100000)이 주어진다.

둘째 줄에는 A[1], A[2], ..., A[N]이 공백으로 구분되어 주어진다.

셋째 줄에는 B[1], B[2], ..., B[N]이 공백으로 구분되어 주어진다.

모든 원소는 1 이상 N 이하의 자연수이다.

출력

첫째 줄에 필요한 Swap 연산의 최소 횟수를 출력한다. 불가능하면 -1을 출력한다.