함께 춤추자
시간 제한2초메모리 제한1024 MB
수직선 위의 소년 n명과 소녀 n명을 짝지어, 서로 현재 파트너보다 더 가깝게 있는 쌍이 없도록 하는 문제입니다. 불가능하면 -1을 출력합니다.
문제
랄프는 오락실 기계를 살펴보다가 아마 지금까지 나온 것 중 가장 지루한 게임을 찾아냈다. 게임 이름은 "함께 춤추자"이다. 목표는 주어진 소년들과 소녀들을 춤 짝으로 묶는 것이다.
편의상 소년은 부터 까지, 소녀도 부터 까지 번호가 매겨져 있다. 모든 아이는 수직선 위에 놓여 있는데, 번째 소년은 좌표 에, 번째 소녀는 좌표 에 있다. 게임이 그다지 현실적이지 않아서 여러 아이가 같은 점에 서 있을 수도 있다.
아이들의 선호는 꽤 단순하다. 번째 소년과 번째 소녀 사이의 호감도는 두 사람 사이 거리 의 역수로 정한다. 즉 가까이 있을수록 서로를 더 좋아한다. 한 소년이 여러 소녀에게 똑같이 호감을 느낄 수 있고, 반대도 가능하다.
플레이어는 개의 짝을 만들어야 한다. 각 짝은 소년 한 명과 소녀 한 명으로 이루어지며, 모든 아이는 정확히 한 짝에만 속해야 한다.
그러나 아무렇게나 짝을 지으면 되는 것은 아니다. 소년 가 소녀 와 짝이고, 소년 가 소녀 와 짝이라고 하자. 와 의 호감도가 와 의 호감도보다 크고, 동시에 와 의 호감도보다도 크면, 소년 와 소녀 사이에 "유혹"이 생긴다. 즉 소년과 소녀가 각자의 짝보다 서로를 더 좋아하면 유혹이 생긴다.
목표는 유혹이 생기지 않도록 모든 소년과 소녀를 짝짓는 것이다. 랄프는 이번 단계를 도저히 깨지 못하고 있어서, 이 게임에서 이기는 프로그램을 작성하거나 이기는 것이 불가능하다고 판정하는 프로그램을 짜 달라고 부탁했다.
입력
첫 줄에 소년과 소녀의 수 이 주어진다 ().
둘째 줄에는 소년들의 좌표 가 개 주어진다 ().
셋째 줄에는 소녀들의 좌표 가 개 주어진다 ().
출력
유혹이 생기지 않도록 아이들을 짝지을 수 없으면 을 한 줄에 출력한다.
그렇지 않으면 개의 줄을 출력한다. 각 줄에는 한 짝을 이루는 소년의 번호와 소녀의 번호를 차례로 적는다. 조건을 만족하는 짝짓기가 여러 가지라면 그중 아무거나 출력하면 된다.