홍수
시간 제한1초메모리 제한128 MB
서로 교차하지 않고 축에 평행한 벽들로 이루어진 구조에서 바깥에서부터 시간 단위로 물이 퍼질 때 끝까지 남는 벽을 구한다.
문제
1964년, 한 도시에 큰 홍수가 닥쳤습니다. 물이 벽을 밀어붙이면서 많은 건물이 파괴되었습니다. 이 문제에서는 홍수가 나기 직전 도시를 단순화한 모형이 주어지며, 물이 전체를 모두 침수시킨 뒤 어떤 벽이 무너지지 않고 남는지 판별해야 합니다.
모형은 좌표평면 위의 점 개와 벽 개로 이루어져 있습니다. 각 벽은 두 점을 잇는 선분이며, 다른 점을 지나가지 않습니다. 또한 모형은 다음 성질을 만족합니다.
- 어떤 두 벽도 서로 교차하거나 겹치지 않습니다. 다만 끝점에서 맞닿을 수는 있습니다.
- 모든 벽은 가로축 또는 세로축과 평행합니다.
처음에는 평면 전체가 말라 있습니다. 시각 에 물이 바깥 영역(벽으로 둘러싸이지 않은 모든 공간)을 순식간에 침수시킵니다. 정확히 한 시간 뒤, 한쪽에는 물이 있고 다른 쪽에는 공기가 있는 모든 벽이 수압을 견디지 못하고 무너집니다. 그러면 물이 새로 드러난 영역으로 흘러 들어갑니다. 이때 한쪽은 물, 다른 쪽은 공기인 벽이 새로 생길 수 있습니다. 다시 한 시간 뒤 이 벽들도 무너지고 물이 더 퍼집니다. 이 과정은 물이 평면 전체를 침수시킬 때까지 반복됩니다.
아래 그림은 이 과정을 보여 줍니다.
개 점의 좌표와 개 벽의 정보가 주어질 때, 홍수가 끝난 뒤 무너지지 않고 남아 있는 벽을 구하는 프로그램을 작성하세요.
입력
첫째 줄에 점의 개수 ()이 주어집니다.
다음 개의 줄에는 각각 한 점의 좌표 와 ()가 주어집니다. 점은 주어진 순서대로 번부터 번까지 번호가 매겨지며, 좌표가 같은 두 점은 없습니다.
그다음 줄에는 벽의 개수 ()가 주어집니다.
다음 개의 줄에는 각각 서로 다른 두 정수 와 ()가 주어지며, 이는 홍수 전에 점 와 점 를 잇는 벽이 있었음을 뜻합니다. 벽은 주어진 순서대로 번부터 번까지 번호가 매겨집니다.
출력
첫째 줄에 홍수가 끝난 뒤 남아 있는 벽의 개수 를 출력합니다.
다음 개의 줄에 남아 있는 벽의 번호를 한 줄에 하나씩, 증가하는 순서로 출력합니다.


