개미의 복수 2
시간 제한5초메모리 제한256 MB
원을 따라 양방향으로 이동하는 개미들이 충돌하면 방향을 바꾸고 모든 개미가 처음 위치와 방향으로 돌아오는 시각을 구합니다.
문제
둘레가 인 원형 레일이 있다. 경근이는 레일을 등분해 각 지점에 시계방향으로 부터 까지 번호를 붙였다. 그리고 그중 몇 지점을 골라 시계방향으로 도는 개미 마리와 반시계방향으로 도는 개미 마리를 올려놓았다. 한 지점에 개미가 두 마리 이상 있는 경우는 없다.
레일 위의 개미는 모두 1초에 거리 1만큼 움직인다. 레일은 개미 한 마리만 지나갈 정도로 폭이 좁아서, 서로 반대 방향으로 오던 두 개미가 한 지점에서 부딪치면 그 즉시 둘 다 방향을 반대로 바꾼다. 개미는 크기가 없는 점이라서 두 마리의 위치가 정확히 같아지는 순간에만 부딪친다.
경근이는 개미를 모두 구별한다. 모든 개미가 처음 있던 지점으로 돌아와 처음과 같은 방향으로 움직이게 되려면 최소 몇 초가 걸리는지 구하는 프로그램을 작성하라.
입력
첫째 줄에 원형 레일의 둘레 , 시계방향으로 도는 개미의 수 , 반시계방향으로 도는 개미의 수 이 공백으로 구분되어 주어진다. (, , , )
둘째 줄에 시계방향으로 도는 개미가 있는 지점 개가 공백으로 구분되어 주어진다.
셋째 줄에 반시계방향으로 도는 개미가 있는 지점 개가 공백으로 구분되어 주어진다.
모든 지점은 이상 이하의 정수이고, 주어지는 개의 지점은 서로 다르다. 지점은 정렬되어 있지 않을 수도 있다.
출력
첫째 줄에 모든 개미가 처음 있던 지점에서 처음과 같은 방향으로 움직이게 되기까지 필요한 최소 시간을 초 단위로 출력한다.
노트
첫 번째 예제에서는 두 개미가 0.5초와 1.5초에 부딪치고, 2초가 되면 처음과 같은 상태가 된다.