돼지 잡기
면접 대비시간 제한2초메모리 제한256 MB
새가 포물선을 그리며 날다가 화면을 누른 순간부터 접선을 따라 직선으로 날아간다. 돼지를 맞히는 누름 시각을 구하고, 누르지 않아도 맞으면 Ok, 불가능하면 Impossible을 출력한다.
문제
어떤 컴퓨터 게임의 목표는 새총으로 여러 색의 새를 쏘아 최대한 많은 초록 돼지를 잡는 것이다. 새마다 비행 특성이 다르다.
이 문제에서는 비행 특성이 다음과 같은 새를 다룬다. 발사 직후에는 지평선과 각도를 이루며 던져진 물체처럼 포물선을 그리며 날아간다. 그런데 플레이어가 화면이나 마우스 버튼을 누르면 새가 가속되어 그 뒤로는 사실상 직선으로 날아간다. 이때 직선은 버튼을 누른 순간 새가 있던 점에서 포물선에 접하는 접선이다.
화면을 좌표 격자가 있는 평면으로 보고, 원점을 새의 발사 지점으로 두자. 새의 발사 조건이 주어진다. α는 새의 초기 속도 벡터와 OX축 양의 방향 사이의 각도(도)이고, V는 새의 속도(초당 미터), g는 중력 가속도(초당 제곱미터), X와 Y는 돼지의 좌표(미터)이다. 새가 돼지에 맞도록 플레이어가 어느 순간에 새를 가속해야 하는지 구해야 한다. 돼지와 새는 점으로 취급하고, 중력 가속도는 OY축 반대 방향으로 작용한다. 새가 돼지에 맞았다는 것은 새의 비행 궤적이 돼지가 있는 점을 지나는 수직선과 만나는 점이 돼지에서 10-4미터 이하로 떨어져 있는 경우를 말한다.
입력
첫째 줄에 세 정수 α, V, g가 주어진다. 각각 새를 던진 각도, 새의 초기 속도, 중력 가속도이다 (0 < α < 90, 1 ≤ V, g ≤ 100).
둘째 줄에 두 정수 X와 Y가 주어진다. 돼지가 있는 점의 좌표이다 (0 ≤ X, Y ≤ 100). 돼지는 원점에 있지 않다.
출력
돼지에 맞힐 방법이 없으면 Impossible을 출력한다.
새를 가속하지 않고도 돼지에 맞힐 수 있으면 Ok를 출력한다.
그 외의 경우에는 새를 가속해야 할 때까지 발사 시점부터 흐른 시간 t(초)를 실수로 출력한다.
새를 가속해서 맞힐 수도 있고 가속하지 않고 맞힐 수도 있으면, 둘 중 아무 방법이나 출력해도 된다.
답을 검사할 때 새가 돼지에 맞았다는 것은 새의 비행 궤적이 돼지가 있는 점을 지나는 수직선과 만나는 점이 돼지에서 10-4미터 이하로 떨어져 있는 경우를 말한다.