평면 나라의 피젯 스피너

세 팔 회전판을 촬영한 카메라의 픽셀 색이 주어질 때 카메라의 위치와 회전각을 역산한다.

어려움8기하이분 탐색구현수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

평면 나라의 사진가 프레디는 신문 Flatland Financial Times에 새 장난감 소식을 싣고 싶어 한다. 잡지 Flatland Weekly에 실린 피젯 스피너 사진이 아주 마음에 들어서, 똑같은 사진을 싣기로 했다. 평면 나라의 저작권법은 사진 복제를 금지하므로 프레디는 똑같아 보이는 사진을 직접 찍기로 한다. 카메라를 어디에 놓아야 하는지 알려주자.

피젯 스피너

평면 나라의 사진술

프레디에게는 1MP 카메라 한 대와 화소 수가 적은 값싼 카메라 몇 대가 있다. 화소 하나는 00 이상 11 이하인 실수 세 개 (R,G,B)(R, G, B)를 색으로 기록한다. 프레디가 재현하려는 사진에서 피젯 스피너는 완전히 검은 (0,0,0)(0, 0, 0) 배경 위에 놓여 있다. 완전히 검은 화소는 사진 전체의 40%40\%를 넘지 않는다. 스피너가 잘려 나오는 일은 없어서, 가장 왼쪽 화소와 가장 오른쪽 화소는 항상 완전히 검다. 스피너의 날개는 순수한 색을 띠며 반시계 방향으로 빨강 (1,0,0)(1, 0, 0), 초록 (0,1,0)(0, 1, 0), 파랑 (0,0,1)(0, 0, 1) 순이다. 날개의 길이는 모두 11이고, 이웃한 두 날개가 이루는 각은 모두 2π/32\pi/3, 즉 120120도이다. 스피너는 원점 사진관에 놓여 있고 중심은 x=0x = 0, y=0y = 0, 파란 날개의 끝은 x=1x = -1, y=0y = 0이다.

평면 나라의 카메라 배치와 그 결과로 얻은 사진

화소가 nn개이고 시야각이 θ\theta인 카메라는 각도 θ\theta만큼을 담으므로, 화소 하나가 담는 각도는 θ/n\theta/n이다. 카메라는 위치 (x,y)(x, y)에 놓이고, 각도 α\alpha는 양의 xx축과 카메라 시야의 중심이 이루는 반시계 방향 각이다. 화소의 색은 그 화소가 담는 각도 구간에서의 평균이다. 각 날개는 자신이 카메라에서 가장 가까운 물체로 보이는 부분의 비율만큼 자기 색을 보탠다. 날개는 서로를 가린다. 같은 방향에서 두 날개가 겹치면 카메라에 더 가까운 쪽만 기록된다.

위 그림의 카메라는 화소가 n=8n = 8개이고 시야각이 θ=80\theta = 80도라서, 화소 하나가 1010도를 담는다. 이 사진의 어떤 화소에는 빨간 날개와 파란 날개가 함께 들어간다. 그 화소 안에서 파랑이 66도, 빨강이 44도를 차지하므로 이 화소가 기록하는 색은 410(1,0,0)+610(0,0,1)=(0.4,0.0,0.6)\frac{4}{10} \cdot (1, 0, 0) + \frac{6}{10} \cdot (0, 0, 1) = (0.4, 0.0, 0.6), 즉 보랏빛이다.

입력

첫째 줄에 카메라의 성질로 화소 수 nn (8n1068 \le n \le 10^6)과 라디안 단위의 시야각 θ\theta (2π/8θ2π/42\pi/8 \le \theta \le 2\pi/4)가 주어진다.

다음 nn개 줄에는 각각 실수 세 개 RR, GG, BB (0R,G,B10 \le R, G, B \le 1)가 주어지고, R+G+B1+1010R + G + B \le 1 + 10^{-10}을 만족한다. 화소는 시계 방향 순서로 주어진다. 입력의 모든 실수는 소수점 아래 1010자리 이하이다.

출력

카메라의 위치와 라디안 단위의 회전각인 xx, yy, α\alpha (0α<2π0 \le \alpha < 2\pi)를 공백 하나로 구분해 출력한다. 세 수 모두 소수점 아래 넷째 자리까지 정확히 출력한다.

주어진 사진을 만들어내는 카메라의 배치는 하나뿐이고 출력할 세 값은 모두 반올림 경계에서 충분히 떨어져 있으므로, 답은 유일하다.