벤 다이어그램
시간 제한8초메모리 제한512 MB
주어진 넓이와 겹침을 만족하는 두 원을 직사각형 안에 배치하고 불가능하면 그 사실을 출력합니다.
문제
앨리스는 과외 교사다. 수업 자료를 만드는 일도 앨리스의 몫이라, 지금은 두 집합 와 의 벤 다이어그램을 그리고 있다.
벤 다이어그램은 집합 사이의 관계를 나타내는 그림이다. 와 의 벤 다이어그램에서 바깥쪽 직사각형은 전체집합 를 나타내고, 그 안의 두 원은 각각 와 를 나타낸다. 두 원이 겹치는 부분은 교집합 에 대응한다.
앨리스는 그림이 수치까지 담기를 바란다. 그래서 각 영역의 넓이가 그 영역이 나타내는 집합의 원소 개수와 같아야 한다는 조건을 걸었다. 한 원의 넓이는 , 다른 원의 넓이는 , 두 원이 겹치는 부분의 넓이는 여야 한다. 는 집합 의 원소 개수다.
직사각형은 이미 그려져 있고, 왼쪽 아래 꼭짓점이 , 오른쪽 위 꼭짓점이 다. 두 원은 모두 이 직사각형 안에 들어가야 한다. 각 원의 중심과 반지름을 구하는 프로그램을 작성하라.
입력
입력은 여러 개의 데이터 집합으로 이루어진다. 데이터 집합의 개수는 개 이하다. 각 데이터 집합은 정수 다섯 개가 놓인 한 줄이다.
UW UH |A| |B| |A∩B|
와 ()는 전체집합 를 나타내는 직사각형의 가로 길이와 세로 길이다. , , (, )는 각각 , , 의 원소 개수다. 마지막 줄에는 다섯 개가 놓이며, 이 줄은 데이터 집합이 아니다.
와 가 이내로 달라져도 두 원을 그릴 수 있는지 여부는 바뀌지 않는다.
출력
각 데이터 집합마다 한 줄을 출력한다. 앨리스의 조건을 만족하는 배치는 여러 가지가 있으므로, 다음 규칙이 정하는 배치 하나를 출력한다.
반지름은 넓이 조건에서 바로 정해진다. , .
를 겹치는 부분의 넓이가 가 되는 두 중심 사이의 거리 중 가장 작은 값이라고 하자. 이면 다. 이면 이다. 그 밖의 경우에는 인 가 정확히 하나 있다.
다음 두 조건이 모두 성립할 때에만 두 원을 그릴 수 있다.
- . 여기서
둘 중 하나라도 성립하지 않으면 impossible을 출력한다.
성립하면 로 두고, 인 경우에는 으로 둔다. 그리고 다음 여섯 값을
이 순서대로 한 줄에, 공백 하나로 구분해, 소수점 아래 아홉 자리까지 출력한다. 말로 옮기면 원 의 중심은 직사각형의 중심에서 점 로 향하는 선분 위에, 원 의 중심은 직사각형의 중심에서 점 로 향하는 선분 위에 있고, 두 중심 모두 자기 선분에서 같은 비율 만큼 나아간 지점에 놓인다.