시간 제한메모리 제한제출정답맞힌 사람정답 비율
2 초 128 MB4301298434.711%

문제

스키 점프는 가장 인기있는 겨울 스포츠 대회 중 하나이다. 스키 점프 언덕은 기록을 높이기 위해 점점 커졌다. 선수들의 안전을 위해서 국제 스키 연맹은 착륙 속도와 각도의 최댓값을 정해두었다. 새로 만들어진 스키 점프 경기장이 주어진다. 출발대의 가장 높은 곳에서 출발했을 때, 착륙 속도와 각도를 구하는 프로그램을 작성하시오.

이 문제를 풀기 위해서는 아래와 같은 간단한 물리 지식이 필요하다. 

언덕은 다음과 같은 모양이다.

l은 언덕이 시작하는 곳을 원점으로 했을 때, x축 상의 위치이다. H는 언덕의 높이, L은 언덕의 너비이다. j는 스키 점프를 시작할 수 있는 최대 높이이고, p는 점프대와 언덕 꼭대기와의 높이 차이이다. 마찰력과 공기저항은 무시한다면, 선수는 다음과 같은 곡선을 그리며 날아가게 된다.

여기서 v0은 점프할 때의 속도이다. 이 속도는 에너지 보존의 법칙을 이용해서 계산할 수 있다. 포텐셜 에너지와 운동 에너지의 정의는 다음과 같다.

모든 식에서 g는 중력 상수이며, 9.81ms-2로 계산한다.

입력

첫째 줄에 테스트 케이스의 개수 t가 주어진다. (0 < t < 160,000)

각 테스트 케이스는 한 줄로 이루어져 있고, j, p, H, L이 주어진다. (0 < j, p, H, L ≤ 500) 모든 값의 단위는 미터이다.

출력

각 테스트 케이스에 대해서, 다음과 같은 세 가지 값을 출력한다.

1. x축 상에서 착륙 위치 l

2. 착륙 속도 |vl| (m/s)

3. 언덕에 대한 각도 α (degree)

오차는 10-4까지 허용한다.

예제 입력 1

3
50 5 10 100
50 5 30 100
50 5 50 100

예제 출력 1

40.82482905 33.83045965 12.93315449
81.04978134 40.31656580 26.21334827
104.8808848 45.38832449 46.36470132

힌트

두 벡터 a와 b의 내적은 다음과 같이 구할 수 있다.

W3sicHJvYmxlbV9pZCI6IjM5NTkiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWMyYTRcdWQwYTQgXHVjODEwXHVkNTA0IiwiZGVzY3JpcHRpb24iOiI8cD5cdWMyYTRcdWQwYTQgXHVjODEwXHVkNTA0XHViMjk0IFx1YWMwMFx1YzdhNSBcdWM3NzhcdWFlMzBcdWM3ODhcdWIyOTQgXHVhY2E4XHVjNmI4IFx1YzJhNFx1ZDNlY1x1Y2UyMCBcdWIzMDBcdWQ2OGMgXHVjOTExIFx1ZDU1OFx1YjA5OFx1Yzc3NFx1YjJlNC4gXHVjMmE0XHVkMGE0IFx1YzgxMFx1ZDUwNCBcdWM1YjhcdWIzNTVcdWM3NDAgXHVhZTMwXHViODVkXHVjNzQ0IFx1YjE5Mlx1Yzc3NFx1YWUzMCBcdWM3MDRcdWQ1NzQgXHVjODEwXHVjODEwIFx1Y2VlNFx1Yzg0Y1x1YjJlNC4gXHVjMTIwXHVjMjE4XHViNGU0XHVjNzU4IFx1YzU0OFx1YzgwNFx1Yzc0NCBcdWM3MDRcdWQ1NzRcdWMxMWMgXHVhZDZkXHVjODFjIFx1YzJhNFx1ZDBhNCBcdWM1ZjBcdWI5ZjlcdWM3NDAgXHVjYzI5XHViOTU5IFx1YzE4ZFx1YjNjNFx1YzY0MCBcdWFjMDFcdWIzYzRcdWM3NTggXHVjZDVjXHViMzEzXHVhYzEyXHVjNzQ0IFx1YzgxNVx1ZDU3NFx1YjQ1MFx1YzVjOFx1YjJlNC4gXHVjMGM4XHViODVjIFx1YjljY1x1YjRlNFx1YzViNFx1YzljNCBcdWMyYTRcdWQwYTQgXHVjODEwXHVkNTA0IFx1YWNiZFx1YWUzMFx1YzdhNVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1Y2Q5Y1x1YmMxY1x1YjMwMFx1Yzc1OCBcdWFjMDBcdWM3YTUgXHViMTkyXHVjNzQwIFx1YWNmM1x1YzVkMFx1YzExYyBcdWNkOWNcdWJjMWNcdWQ1ODhcdWM3NDQgXHViNTRjLCBcdWNjMjlcdWI5NTkgXHVjMThkXHViM2M0XHVjNjQwIFx1YWMwMVx1YjNjNFx1Yjk3YyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG5cclxuXHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3NqMS5wbmdcIiBzdHlsZT1cImhlaWdodDozNjNweDsgd2lkdGg6NTkzcHhcIiBcLz48XC9wPlxyXG5cclxuXHJcblxyXG48cD5cdWM3NzQgXHViYjM4XHVjODFjXHViOTdjIFx1ZDQ4MFx1YWUzMCBcdWM3MDRcdWQ1NzRcdWMxMWNcdWIyOTQgXHVjNTQ0XHViNzk4XHVjNjQwIFx1YWMxOVx1Yzc0MCBcdWFjMDRcdWIyZThcdWQ1NWMgXHViYjNjXHViOWFjIFx1YzljMFx1YzJkZFx1Yzc3NCBcdWQ1NDRcdWM2OTRcdWQ1NThcdWIyZTQuJm5ic3A7PFwvcD5cclxuXHJcblxyXG5cclxuPHA+XHVjNWI4XHViMzU1XHVjNzQwIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NDAgXHViYWE4XHVjNTkxXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG5cclxuXHJcbjxwPjxpbWcgYWx0PVwiXCIgc3JjPVwiXC91cGxvYWRcL2ltYWdlc1wvc2oyLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjEwNHB4OyB3aWR0aDo0MjlweFwiIFwvPjxcL3A+XHJcblxyXG5cclxuXHJcbjxwPmxcdWM3NDAgXHVjNWI4XHViMzU1XHVjNzc0IFx1YzJkY1x1Yzc5MVx1ZDU1OFx1YjI5NCBcdWFjZjNcdWM3NDQgXHVjNmQwXHVjODEwXHVjNzNjXHViODVjIFx1ZDU4OFx1Yzc0NCBcdWI1NGMsIHhcdWNkOTUgXHVjMGMxXHVjNzU4IFx1YzcwNFx1Y2U1OFx1Yzc3NFx1YjJlNC4gSFx1YjI5NCBcdWM1YjhcdWIzNTVcdWM3NTggXHViMTkyXHVjNzc0LCBMXHVjNzQwIFx1YzViOFx1YjM1NVx1Yzc1OCBcdWIxMDhcdWJlNDRcdWM3NzRcdWIyZTQuIGpcdWIyOTQgXHVjMmE0XHVkMGE0IFx1YzgxMFx1ZDUwNFx1Yjk3YyBcdWMyZGNcdWM3OTFcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjI5NCBcdWNkNWNcdWIzMDAgXHViMTkyXHVjNzc0XHVjNzc0XHVhY2UwLCBwXHViMjk0IFx1YzgxMFx1ZDUwNFx1YjMwMFx1YzY0MCBcdWM1YjhcdWIzNTUgXHVhZjJkXHViMzAwXHVhZTMwXHVjNjQwXHVjNzU4IFx1YjE5Mlx1Yzc3NCBcdWNjMjhcdWM3NzRcdWM3NzRcdWIyZTQuIFx1YjljOFx1Y2MzMFx1YjgyNVx1YWNmYyBcdWFjZjVcdWFlMzBcdWM4MDBcdWQ1NmRcdWM3NDAgXHViYjM0XHVjMmRjXHVkNTVjXHViMmU0XHViYTc0LCBcdWMxMjBcdWMyMThcdWIyOTQgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc0MCBcdWFjZTFcdWMxMjBcdWM3NDQgXHVhZGY4XHViOWFjXHViYTcwIFx1YjBhMFx1YzU0NFx1YWMwMFx1YWM4YyBcdWI0MWNcdWIyZTQuPFwvcD5cclxuXHJcblxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9zajMucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NjNweDsgd2lkdGg6NDg5cHhcIiBcLz48XC9wPlxyXG5cclxuXHJcblxyXG48cD5cdWM1ZWNcdWFlMzBcdWMxMWMgdjBcdWM3NDAgXHVjODEwXHVkNTA0XHVkNTYwIFx1YjU0Y1x1Yzc1OCBcdWMxOGRcdWIzYzRcdWM3NzRcdWIyZTQuIFx1Yzc3NCBcdWMxOGRcdWIzYzRcdWIyOTQgXHVjNWQwXHViMTA4XHVjOWMwIFx1YmNmNFx1Yzg3NFx1Yzc1OCBcdWJjOTVcdWNlNTlcdWM3NDQgXHVjNzc0XHVjNmE5XHVkNTc0XHVjMTFjIFx1YWNjNFx1YzBiMFx1ZDU2MCBcdWMyMTggXHVjNzg4XHViMmU0LiBcdWQzZWNcdWQxNTBcdWMxNWMgXHVjNWQwXHViMTA4XHVjOWMwXHVjNjQwIFx1YzZiNFx1YjNkOSBcdWM1ZDBcdWIxMDhcdWM5YzBcdWM3NTggXHVjODE1XHVjNzU4XHViMjk0IFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWIyZTQuPFwvcD5cclxuXHJcblxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9zajQucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NTJweDsgd2lkdGg6NDk1cHhcIiBcLz48XC9wPlxyXG5cclxuXHJcblxyXG48cD5cdWJhYThcdWI0ZTAgXHVjMmRkXHVjNWQwXHVjMTFjIGdcdWIyOTQgXHVjOTExXHViODI1IFx1YzBjMVx1YzIxOFx1Yzc3NFx1YmE3MCwgOS44MW1zPHN1cD4tMjxcL3N1cD5cdWI4NWMgXHVhY2M0XHVjMGIwXHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YWMxY1x1YzIxOCB0XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gKDAgJmx0OyB0ICZsdDsgMTYwLDAwMCk8XC9wPlxyXG5cclxuXHJcblxyXG48cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWQ1NWMgXHVjOTA0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWFjZTAsIGosIHAsIEgsIExcdWM3NzQgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiAoMCAmbHQ7IGosIHAsIEgsIEwgJmxlOyA1MDApIFx1YmFhOFx1YjRlMCBcdWFjMTJcdWM3NTggXHViMmU4XHVjNzA0XHViMjk0IFx1YmJmOFx1ZDEzMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMsIFx1YjJlNFx1Yzc0Y1x1YWNmYyBcdWFjMTlcdWM3NDAgXHVjMTM4IFx1YWMwMFx1YzljMCBcdWFjMTJcdWM3NDQgXHVjZDljXHViODI1XHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG5cclxuXHJcbjxwPjEuIHhcdWNkOTUgXHVjMGMxXHVjNWQwXHVjMTFjIFx1Y2MyOVx1Yjk1OSBcdWM3MDRcdWNlNTggbDxcL3A+XHJcblxyXG5cclxuXHJcbjxwPjIuIFx1Y2MyOVx1Yjk1OSBcdWMxOGRcdWIzYzQgfHZsfCAobVwvcyk8XC9wPlxyXG5cclxuXHJcblxyXG48cD4zLiBcdWM1YjhcdWIzNTVcdWM1ZDAgXHViMzAwXHVkNTVjIFx1YWMwMVx1YjNjNCAmYWxwaGE7IChkZWdyZWUpPFwvcD5cclxuXHJcblxyXG5cclxuPHA+XHVjNjI0XHVjYzI4XHViMjk0IDEwPHN1cD4tNDxcL3N1cD5cdWFlNGNcdWM5YzAgXHVkNWM4XHVjNmE5XHVkNTVjXHViMmU0LjxcL3A+XHJcbiIsImhpbnQiOiI8cD5cdWI0NTAgXHViY2ExXHVkMTMwIGFcdWM2NDAgYlx1Yzc1OCBcdWIwYjRcdWM4MDFcdWM3NDAgXHViMmU0XHVjNzRjXHVhY2ZjIFx1YWMxOVx1Yzc3NCBcdWFkNmNcdWQ1NjAgXHVjMjE4IFx1Yzc4OFx1YjJlNC48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9zajUucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MzdweDsgd2lkdGg6Mzg4cHhcIiBcLz48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjAiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IktvcmVhbiJ9LHsicHJvYmxlbV9pZCI6IjM5NTkiLCJwcm9ibGVtX2xhbmciOiIxIiwidGl0bGUiOiJTa2kgSnVtcGluZyIsImRlc2NyaXB0aW9uIjoiPHA+U2tpIGp1bXBpbmcgaXMgb25lIG9mIHRoZSBtb3N0IHBvcHVsYXIgd2ludGVyIHNwb3J0IGNvbXBldGl0aW9ucy4gSW4gdGhlIGNoYXNlIG9mIHJlY29yZHMsIHNraSBqdW1waW5nIGhpbGxzIGJlY29tZSBsYXJnZXIgYW5kIGxhcmdlci4gVG8gZW5zdXJlIHRoZSBzYWZldHkgb2YgdGhlIGNvbXBldGl0b3JzLCBsYW5kaW5nIHNwZWVkIGFuZCBhbmdsZSBtdXN0IG5vdCBleGNlZWQgY3JpdGljYWwgbWFyZ2lucyBkZSBuZWQgYnkgdGhlIEZJUy4gVG9kYXksIGl0JiMzOTtzIHlvdXIgdGFzayB0byBhc3Nlc3MgdGhlc2UgdmFsdWVzIGZvciBhIG5ld2x5IGNvbnN0cnVjdGVkIHNraSBqdW1waW5nIGFyZW5hIHNob3duIGluIHRoZSBndXJlLjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3NqMS5wbmdcIiBzdHlsZT1cImhlaWdodDozNjNweDsgd2lkdGg6NTkzcHhcIiBcLz48XC9wPlxyXG5cclxuPHA+SW5zdGVhZCBvZiBkb2luZyBtZWFzdXJlbWVudHMgaW4gdGhlIGVsZCwgeW91IGNhbiB1c2UgYSBsaXR0bGUgbWF0aCB0byBzb2x2ZSB5b3VyIHByb2JsZW0sIHNpbmNlIHRoZSBoaWxsIGhhcyB0aGUgZm9sbG93aW5nIHNoYXBlOjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3NqMi5wbmdcIiBzdHlsZT1cImhlaWdodDoxMDRweDsgd2lkdGg6NDI5cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+d2hlcmUgbCBpcyB0aGUgcG9zaXRpb24gb24gdGhlIHgtYXhpcyB3aXRoIGl0cyBvcmlnaW4gaW4gdGhlIGJlZ2lubmluZyBvZiB0aGUgaGlsbC4gSCBpcyB0aGUgaGVpZ2h0IGFuZCBMIGlzIHRoZSB3aWR0aCBvZiB0aGUgaGlsbDsgaiBpcyB0aGUgbWF4aW11bSBzdGFydGluZyBoZWlnaHQgb2YgdGhlIHNraS1qdW1wIGFuZCBwIGlzIHRoZSBoZWlnaHQgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBlbmQgb2YgdGhlIChza2ktanVtcCkgYXBwcm9hY2ggYW5kIHRoZSB0b3Agb2YgdGhlIGhpbGwuIEFzc3VtaW5nIHRoYXQgZnJpY3Rpb24gcGxheXMgbm8gaW1wb3J0YW50IHJvbGUgYW5kIHNpbmNlIHRoZSBjcml0aWNhbCBtYXJnaW5zIGFyZSBkZWZpIG5lZCBmb3IgYSBmbGlnaHQgd2l0aG91dCBhbnkgaW5mbHVlbmNlIG9mIHdpbmQsIHlvdSBtYXkgdXRpbGl6ZSB0aGUgZm9sbG93aW5nIGZsaWdodCBjdXJ2ZTo8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9zajMucG5nXCIgc3R5bGU9XCJoZWlnaHQ6NjNweDsgd2lkdGg6NDg5cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+d2hlcmUgdjAgaXMgdGhlIHNwZWVkIGdhaW5lZCBpbiB0aGUgYXBwcm9hY2guIFlvdSBjYW4gb2J0YWluIHRoaXMgdmFsdWUgZnJvbSB0aGUgbGF3IG9mIGVuZXJneSBjb25zZXJ2YXRpb24uIFBvdGVudGlhbCBhbmQga2luZXRpYyBlbmVyZ3kgYXJlIGRlIG5lZCBhcyBmb2xsb3dzOjxcL3A+XHJcblxyXG48cD48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3NqNC5wbmdcIiBzdHlsZT1cImhlaWdodDo1MnB4OyB3aWR0aDo0OTVweFwiIFwvPjxcL3A+XHJcblxyXG48cD5JbiBhbGwgZXF1YXRpb25zLCBnIGlzIHRoZSBncmF2aXRhdGlvbmFsIGNvbnN0YW50IChnICZhc3ltcDsgOTo4MSBtczxzdXA+LTI8XC9zdXA+KTxcL3A+XHJcbiIsImlucHV0IjoiPHA+SW5wdXQgc3RhcnRzIHdpdGggdGhlIG51bWJlciBvZiB0ZXN0IGNhc2VzIHQgb24gYSBzaW5nbGUgbGluZSAoMCAmbHQ7IHQgJmx0OyAxNjAgMDAwKS48XC9wPlxyXG5cclxuPHA+RXZlcnkgdGVzdCBjYXNlIGNvbnNpc3RzIG9mIGEgc2luZ2xlIGxpbmUgY29udGFpbmluZyBmb3VyIHBvc2l0aXZlIGludGVnZXJzIGosIHAsIEgsIGFuZCBMIGFzIGRlIGZpbmVkIGluIHRoZSBwcm9ibGVtIHN0YXRlbWVudCAoMCAmbHQ7IGosIHAsIEgsIEwgJmxlO1x1MDAxNCA1MDApLiBUaGUgdW5pdCBvZiBhbGwgdmFsdWVzIGlzIG1ldGVyLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBldmVyeSB0ZXN0IGNhc2UsIHByaW50IG9uZSBsaW5lIGNvbnRhaW5pbmc8XC9wPlxyXG5cclxuPHVsPlxyXG5cdDxsaT50aGUgbGFuZGluZyBwb3NpdGlvbiBsIG9uIHRoZSB4LWF4aXMsPFwvbGk+XHJcblx0PGxpPnRoZSBsYW5kaW5nIHNwZWVkIHx2PHN1Yj5sPFwvc3ViPnwgb2YgdGhlIGp1bXBlciAoaW4gbWV0ZXJzIHBlciBzZWNvbmQpLCBhbmQ8XC9saT5cclxuXHQ8bGk+dGhlIHNwZWVkLWFuZ2xlICZhbHBoYTsgKGluIGRlZ3JlZSkgd2l0aCByZXNwZWN0IHRvIHRoZSBoaWxsIChzZWUgdGhlIGZpZ3VyZSkuPFwvbGk+XHJcbjxcL3VsPlxyXG5cclxuPHA+VGhlIHZhbHVlcyBtdXN0IGJlIHNlcGFyYXRlZCBieSBhIHNpbmdsZSBibGFuay4gQW4gYWJzb2x1dGUgb3IgcmVsYXRpdmUgZXJyb3Igb2YgMTA8c3VwPi00PFwvc3VwPiBpcyB0b2xlcmF0ZWQ8XC9wPlxyXG4iLCJoaW50IjoiPHA+VGhlIGlubmVyIHByb2R1Y3Qgb2YgdHdvIHZlY3RvcnMgYSBhbmQgYiBpcyBkZSBmaW5lZCBhczo8XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9zajUucG5nXCIgc3R5bGU9XCJoZWlnaHQ6MzdweDsgd2lkdGg6Mzg4cHhcIiBcLz48XC9wPlxyXG4iLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=