IPvX
시간 제한2초메모리 제한1024 MB
점유된 IPvX 주소 목록과 시작 주소 a, b가 주어질 때, 두 컴퓨터의 주소가 연속되도록 만드는 최소 가상 점유 횟수를 구합니다. 불가능하면 -1을 출력합니다.
문제
쥬만지는 상호작용형 게임이라 그 안에서는 거의 무슨 일이든 일어날 수 있다. 이번에도 주인공들이 길을 잘못 들어 악당 과학자 닥터 DHCP의 포로가 되었다. 닥터 DHCP는 주인공들에게 관심이 없어서, 며칠째 풀지 못한 문제를 도와주면 풀어 주겠다고 한다.
닥터 DHCP의 연구실에는 대의 컴퓨터가 있고, 번째 컴퓨터의 IPvX 주소는 이다. IPvX 주소는 일반적인 IPv4 주소와 같지만 그룹이 4개가 아니라 개일 수 있다. 따라서 모든 IPvX 주소는 형태이고, 각 는 0 이상 255 이하이다. 주소의 대소 관계는 다음과 같이 정한다. 어떤 에 대해 , , 이고 이면 는 보다 작다.
이 문제에서 다음 주소는 현재 주소보다 큰 주소 중 가장 작은 주소이고, 이전 주소는 현재 주소보다 작은 주소 중 가장 큰 주소이다. 예를 들어 의 다음 주소는 , 의 다음 주소는 , 의 다음 주소는 이다.
닥터 DHCP는 로컬 네트워크에 새 컴퓨터 두 대를 추가하려 한다. 이 네트워크는 다음 방식으로 IPvX 주소를 배정한다. 첫 번째 컴퓨터는 먼저 주소 를 받는다. 그 주소가 사용 중이면, 다음 주소가 있을 때 다음 주소로 바꾸고 다시 확인한다. 첫 번째 컴퓨터가 주소를 받은 뒤, 두 번째 컴퓨터는 주소 를 받고 같은 방식으로 동작한다. 현재 주소가 사용 중이면 이전 주소가 있을 때 이전 주소를 시도하며, 이런 식으로 계속 이전 주소로 옮긴다.
닥터 DHCP의 목표는 두 컴퓨터가 주소를 받은 뒤 두 번째 컴퓨터의 주소가 첫 번째 컴퓨터의 주소 바로 다음 주소가 되게 하는 것이다. 항상 가능한 것은 아니므로, 닥터 DHCP에게는 가상 점유 기능이 있다. 그는 로컬 네트워크에 요청을 보내 어떤 주소든 점유 상태로 만들 수 있다. 그 주소는 어느 컴퓨터의 것도 아니지만 사용 중으로 간주된다. 닥터 DHCP는 이 연산을 가능한 한 적게 쓰고 싶어 한다.
주어진 와 에 대해, 두 컴퓨터가 주소를 받은 뒤 두 주소가 서로 인접하도록 만드는 데 필요한 가상 점유 연산의 최소 횟수를 구하라. 불가능하면 을 출력한다.
입력
첫 줄에 과 가 주어진다 (, ). 다음 개 줄에는 각 컴퓨터의 주소 가 형식으로 주어진다 (). 번째 줄과 번째 줄에는 첫 번째와 두 번째 컴퓨터가 처음 받는 주소 와 가 같은 형식으로 주어진다. 모든 컴퓨터 주소는 서로 다르며, 는 보다 작다.
출력
필요한 가상 점유 연산의 최소 횟수를 한 줄에 출력한다. 불가능하면 을 출력한다.
힌트
첫 번째 테스트에서는 주소 123.123.123.124를 점유하면 충분하다. 그러면 컴퓨터들이 각각 123.123.123.121과 123.123.123.122를 받는다. 문제에 나온 테스트 입력은 첫 번째 테스트 그룹에 속하지 않지만, 채점을 통과하려면 반드시 맞아야 한다.