러브 폴리곤

N명의 인물이 각각 한 명을 사랑할 때, 사랑하는 대상을 최소한으로 바꿔 모든 인물이 서로 사랑하는 짝을 이루도록 만든다.

어려움8그래프그리디DFS조합론아직 제출이 없습니다시간 제한2초메모리 제한1024 MB

문제

드라마에는 NN명의 등장인물이 있다. 각 등장인물은 자기 자신을 포함해 정확히 한 사람을 사랑한다. 두 등장인물은 서로를 사랑할 때, 그때만 커플이라고 한다. 세 명 이상이 첫 번째가 두 번째를, 두 번째가 세 번째를 사랑하는 식으로 이어지고 마지막이 첫 번째를 사랑하면 러브 폴리곤이라고 한다.

사랑의 화살을 쏘면 그 등장인물이 사랑하는 대상을 원하는 누구로든 바꿀 수 있다. 모든 등장인물이 커플에 속하도록 만드는 데 필요한 사랑의 화살의 최소 개수를 구하라. 커플은 서로 다른 두 사람이 서로 사랑하는 관계이므로, NN이 홀수이면 모든 사람을 커플로 만들 수 없다.

입력

첫째 줄에 등장인물의 수 NN이 주어진다. 다음 NN개의 줄에는 이름 sstt가 공백으로 구분되어 주어진다. 이는 ss라는 등장인물이 처음에 tt를 사랑한다는 뜻이다. NN명의 서로 다른 등장인물이 ss 자리에 각각 한 번씩 등장한다. 이름은 소문자로만 이루어져 있으며 길이가 최대 10이다.

출력

모든 등장인물이 커플에 속하도록 만드는 데 필요한 사랑의 화살의 최소 개수를 출력한다. 어떻게 바꾸어도 모든 사람을 커플로 만들 수 없으면 -1을 출력한다.

힌트

자기 자신을 사랑하는 것은 커플이 아니다. 커플이 되려면 서로 다른 두 사람이 서로를 사랑해야 한다. 사랑의 화살을 맞지 않은 등장인물은 처음 사랑하던 대상을 그대로 사랑한다.