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