시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB116555.556%

문제

3차원 공간 위에 N개의 구면거울이 있다.

이때, (0,0,0)에서 (u,v,w)방향으로 레이저를 발사하려고 한다. 레이저는 항상 직선으로 움직인다.

I에서 발사한 레이저가 구면 거울의 Q에서 반사되었을 때, 점 N을 구면 거울의 바깥에 있으면서, 구면 거울의 중심과 Q를 잇는 일직선위의 한 점이라고 하자. 이때, 레이저는 다음과 같은 조건을 만족하는 R방향으로 반사딘다.

(1) R은 I, Q, N으로 만든 평면 위의 한 점이다. ∠IQN = ∠NQR

레이저가 마지막으로 반사되는 점의 위치를 찾는 프로그램을 작성하시오.

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 구면 거울의 개수 N이 주어진다. 둘째 줄에는 레이저를 발사한 방향 u, v, w가 공백으로 구분되어 주어진다.

다음 N개의 줄에는 구면 거울을 설명하는 4개의 정수 xi,yi,zi,ri가 주어진다. 구면 거울의 중심은 (xi,yi,zi)이고, 반지름은 ri이다.

1 ≤ N ≤ 100

-100 ≤ u,v,w ≤ 100

-100 ≤ xi,yi,zi ≤ 100

5 ≤ ri ≤ 30

u2 + v2 + w2 > 0

두 구면 거울 사이의 거리는 적어도 0.1이다. (0,0,0)은 모든 구면 거울의 바깥점이고, 모든 구면 거울과 적어도 0.1만큼 떨어져 있다.

레이저는 구면 거울에 적어도 1번, 많아야 5번 반사된다. 또, 반사각(그림에서 θ)은 항상 85도보다 작다.

출력

각각의 테스트 케이스에 대해서, 마지막으로 반사되는 점의 좌표를 공백으로 구분하여 출력한다. 모든 좌표는 소수점 넷째 자리에서 반올림해서 셋째 자리까지 출력한다.

예제 입력 1

2
3
-20 -20 -24
100 100 100 30
10 8 3 5
-70 -70 -84 5
4
0 47 84
-23 41 42 8
45 -10 14 19
-5 28 47 12
-27 68 34 14

예제 출력 1

79.094 79.094 94.913
-21.865 54.977 34.176
W3sicHJvYmxlbV9pZCI6IjM4ODkiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWFkNmNcdWJhNzQgXHVhYzcwXHVjNmI4IiwiZGVzY3JpcHRpb24iOiI8cD4zXHVjYzI4XHVjNmQwIFx1YWNmNVx1YWMwNCBcdWM3MDRcdWM1ZDAgTlx1YWMxY1x1Yzc1OCBcdWFkNmNcdWJhNzRcdWFjNzBcdWM2YjhcdWM3NzQgXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM3NzRcdWI1NGMsICgwLDAsMClcdWM1ZDBcdWMxMWMgKHUsdix3KVx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyBcdWI4MDhcdWM3NzRcdWM4MDBcdWI5N2MgXHViYzFjXHVjMGFjXHVkNTU4XHViODI0XHVhY2UwIFx1ZDU1Y1x1YjJlNC4gXHViODA4XHVjNzc0XHVjODAwXHViMjk0IFx1ZDU2ZFx1YzBjMSBcdWM5YzFcdWMxMjBcdWM3M2NcdWI4NWMgXHVjNmMwXHVjOWMxXHVjNzc4XHViMmU0LjxcL3A+XHJcblxyXG48cD5JXHVjNWQwXHVjMTFjIFx1YmMxY1x1YzBhY1x1ZDU1YyBcdWI4MDhcdWM3NzRcdWM4MDBcdWFjMDAgXHVhZDZjXHViYTc0IFx1YWM3MFx1YzZiOFx1Yzc1OCBRXHVjNWQwXHVjMTFjIFx1YmMxOFx1YzBhY1x1YjQxOFx1YzVjOFx1Yzc0NCBcdWI1NGMsIFx1YzgxMCBOXHVjNzQ0IFx1YWQ2Y1x1YmE3NCBcdWFjNzBcdWM2YjhcdWM3NTggXHViYzE0XHVhZTY1XHVjNWQwIFx1Yzc4OFx1YzczY1x1YmE3NFx1YzExYywgXHVhZDZjXHViYTc0IFx1YWM3MFx1YzZiOFx1Yzc1OCBcdWM5MTFcdWMyZWNcdWFjZmMgUVx1Yjk3YyBcdWM3ODdcdWIyOTQgXHVjNzdjXHVjOWMxXHVjMTIwXHVjNzA0XHVjNzU4IFx1ZDU1YyBcdWM4MTBcdWM3NzRcdWI3N2NcdWFjZTAgXHVkNTU4XHVjNzkwLiBcdWM3NzRcdWI1NGMsIFx1YjgwOFx1Yzc3NFx1YzgwMFx1YjI5NCBcdWIyZTRcdWM3NGNcdWFjZmMgXHVhYzE5XHVjNzQwIFx1Yzg3MFx1YWM3NFx1Yzc0NCBcdWI5Y2NcdWM4NzFcdWQ1NThcdWIyOTQgUlx1YmMyOVx1ZDVhNVx1YzczY1x1Yjg1YyBcdWJjMThcdWMwYWNcdWI1MThcdWIyZTQuPFwvcD5cclxuXHJcbjxwPigxKSBSXHVjNzQwIEksIFEsIE5cdWM3M2NcdWI4NWMgXHViOWNjXHViNGUwIFx1ZDNjOVx1YmE3NCBcdWM3MDRcdWM3NTggXHVkNTVjIFx1YzgxMFx1Yzc3NFx1YjJlNC4gJmFuZztJUU4gPSAmYW5nO05RUjxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9sYXNlci5wbmdcIiBzdHlsZT1cImhlaWdodDozNDZweDsgd2lkdGg6Mzc0cHhcIiBcLz48XC9wPlxyXG5cclxuPHA+XHViODA4XHVjNzc0XHVjODAwXHVhYzAwIFx1YjljOFx1YzljMFx1YjljOVx1YzczY1x1Yjg1YyBcdWJjMThcdWMwYWNcdWI0MThcdWIyOTQgXHVjODEwXHVjNzU4IFx1YzcwNFx1Y2U1OFx1Yjk3YyBcdWNjM2VcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC48XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDAgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1Yzc1OCBcdWFjMWNcdWMyMTggVFx1YWMwMCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1Y2NhYlx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHVhZDZjXHViYTc0IFx1YWM3MFx1YzZiOFx1Yzc1OCBcdWFjMWNcdWMyMTggTlx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM5YzRcdWIyZTQuIFx1YjQ1OFx1YzlmOCBcdWM5MDRcdWM1ZDBcdWIyOTQgXHViODA4XHVjNzc0XHVjODAwXHViOTdjIFx1YmMxY1x1YzBhY1x1ZDU1YyBcdWJjMjlcdWQ1YTUgdSwgdiwgd1x1YWMwMCBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHViNDE4XHVjNWI0IFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHViMmU0XHVjNzRjIE5cdWFjMWNcdWM3NTggXHVjOTA0XHVjNWQwXHViMjk0IFx1YWQ2Y1x1YmE3NCBcdWFjNzBcdWM2YjhcdWM3NDQgXHVjMTI0XHViYTg1XHVkNTU4XHViMjk0IDRcdWFjMWNcdWM3NTggXHVjODE1XHVjMjE4IHg8c3ViPmk8XC9zdWI+LHk8c3ViPmk8XC9zdWI+LHo8c3ViPmk8XC9zdWI+LHI8c3ViPmk8XC9zdWI+XHVhYzAwIFx1YzhmY1x1YzViNFx1YzljNFx1YjJlNC4gXHVhZDZjXHViYTc0IFx1YWM3MFx1YzZiOFx1Yzc1OCBcdWM5MTFcdWMyZWNcdWM3NDAgKHg8c3ViPmk8XC9zdWI+LHk8c3ViPmk8XC9zdWI+LHo8c3ViPmk8XC9zdWI+KVx1Yzc3NFx1YWNlMCwgXHViYzE4XHVjOWMwXHViOTg0XHVjNzQwIHI8c3ViPmk8XC9zdWI+XHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD4xICZsZTsgTiAmbGU7IDEwMDxcL3A+XHJcblxyXG48cD4tMTAwICZsZTsgdSx2LHcgJmxlOyAxMDA8XC9wPlxyXG5cclxuPHA+LTEwMCAmbGU7IHg8c3ViPmk8XC9zdWI+LHk8c3ViPmk8XC9zdWI+LHo8c3ViPmk8XC9zdWI+ICZsZTsgMTAwPFwvcD5cclxuXHJcbjxwPjUgJmxlOyByPHN1Yj5pPFwvc3ViPiAmbGU7IDMwPFwvcD5cclxuXHJcbjxwPnU8c3VwPjI8XC9zdXA+ICsgdjxzdXA+MjxcL3N1cD4gKyB3PHN1cD4yPFwvc3VwPiAmZ3Q7IDA8XC9wPlxyXG5cclxuPHA+XHViNDUwIFx1YWQ2Y1x1YmE3NCBcdWFjNzBcdWM2YjggXHVjMGFjXHVjNzc0XHVjNzU4IFx1YWM3MFx1YjlhY1x1YjI5NCBcdWM4MDFcdWM1YjRcdWIzYzQgMC4xXHVjNzc0XHViMmU0LiAoMCwwLDApXHVjNzQwIFx1YmFhOFx1YjRlMCBcdWFkNmNcdWJhNzQgXHVhYzcwXHVjNmI4XHVjNzU4IFx1YmMxNFx1YWU2NVx1YzgxMFx1Yzc3NFx1YWNlMCwgXHViYWE4XHViNGUwIFx1YWQ2Y1x1YmE3NCBcdWFjNzBcdWM2YjhcdWFjZmMgXHVjODAxXHVjNWI0XHViM2M0IDAuMVx1YjljY1x1ZDA3YyBcdWI1YThcdWM1YjRcdWM4MzggXHVjNzg4XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWI4MDhcdWM3NzRcdWM4MDBcdWIyOTQgXHVhZDZjXHViYTc0IFx1YWM3MFx1YzZiOFx1YzVkMCBcdWM4MDFcdWM1YjRcdWIzYzQgMVx1YmM4OCwgXHViOWNlXHVjNTQ0XHVjNTdjIDVcdWJjODggXHViYzE4XHVjMGFjXHViNDFjXHViMmU0LiBcdWI2MTAsIFx1YmMxOFx1YzBhY1x1YWMwMShcdWFkZjhcdWI5YmNcdWM1ZDBcdWMxMWMgJnRoZXRhOylcdWM3NDAgXHVkNTZkXHVjMGMxIDg1XHViM2M0XHViY2Y0XHViMmU0IFx1Yzc5MVx1YjJlNC48XC9wPlxyXG4iLCJvdXRwdXQiOiI8cD5cdWFjMDFcdWFjMDFcdWM3NTggXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YzVkMCBcdWIzMDBcdWQ1NzRcdWMxMWMsIFx1YjljOFx1YzljMFx1YjljOVx1YzczY1x1Yjg1YyBcdWJjMThcdWMwYWNcdWI0MThcdWIyOTQgXHVjODEwXHVjNzU4IFx1Yzg4Y1x1ZDQ1Y1x1Yjk3YyBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHVkNTU4XHVjNWVjIFx1Y2Q5Y1x1YjgyNVx1ZDU1Y1x1YjJlNC4gXHViYWE4XHViNGUwIFx1Yzg4Y1x1ZDQ1Y1x1YjI5NCBcdWMxOGNcdWMyMThcdWM4MTAgXHViMTM3XHVjOWY4IFx1Yzc5MFx1YjlhY1x1YzVkMFx1YzExYyBcdWJjMThcdWM2MmNcdWI5YmNcdWQ1NzRcdWMxMWMgXHVjMTRiXHVjOWY4IFx1Yzc5MFx1YjlhY1x1YWU0Y1x1YzljMCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMzg4OSIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IlNwaGVyaWNhbCBNaXJyb3JzIiwiZGVzY3JpcHRpb24iOiI8YmxvY2txdW90ZT5BIGxvbmcgdGltZSBhZ28gaW4gYSBnYWxheHksIGZhciwgZmFyIGF3YXksIHRoZXJlIHdlcmUgTiBzcGhlcmVzIHdpdGggdmFyaW91cyByYWRpaS4gU3BoZXJlcyB3ZXJlIG1pcnJvcnMsIHRoYXQgaXMsIHRoZXkgaGFkIHJlZmxlY3RpdmUgc3VyZmFjZXMgLiAuIC4gLjxcL2Jsb2NrcXVvdGU+XHJcblxyXG48cD5Zb3UgYXJlIHN0YW5kaW5nIGF0IHRoZSBvcmlnaW4gb2YgdGhlIGdhbGF4eSAoMCwgMCwgMCksIGFuZCBlbWl0IGEgbGFzZXIgcmF5IHRvIHRoZSBkaXJlY3Rpb24gKHUsIHYsIHcpLiBUaGUgcmF5IHRyYXZlbHMgaW4gYSBzdHJhaWdodCBsaW5lLjxcL3A+XHJcblxyXG48cD5XaGVuIHRoZSBsYXNlciByYXkgZnJvbSBJIGhpdHMgdGhlIHN1cmZhY2Ugb2YgYSBzcGhlcmUgYXQgUSwgbGV0IE4gYmUgYSBwb2ludCBvdXRzaWRlIG9mIHRoZSBzcGhlcmUgb24gdGhlIGxpbmUgY29ubmVjdGluZyB0aGUgc3BoZXJlIGNlbnRlciBhbmQgUS4gVGhlIHJlXHVmYjAyZWN0ZWQgcmF5IGdvZXMgdG8gdGhlIGRpcmVjdGlvbiB0b3dhcmRzIFIgdGhhdCBzYXRpc1x1ZmIwMWVzIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczogKDEpIFIgaXMgb24gdGhlIHBsYW5lIGZvcm1lZCBieSB0aGUgdGhyZWUgcG9pbnRzIEksIFEgYW5kIE4sICgyKSAmYW5nO0lRTiA9ICZhbmc7TlFSLCBhcyBzaG93biBpbiBGaWd1cmUgNi48XC9wPlxyXG5cclxuPHA+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC9sYXNlci5wbmdcIiBzdHlsZT1cImhlaWdodDozNDZweDsgb3BhY2l0eTowLjk7IHdpZHRoOjM3NHB4XCIgXC8+PFwvcD5cclxuXHJcbjxwPkZpZ3VyZSA2OiBMYXNlciByYXkgcmVcdWZiMDJlY3Rpb248XC9wPlxyXG5cclxuPHA+QWZ0ZXIgaXQgaXMgcmVmbGVjdGVkIHNldmVyYWwgdGltZXMsIGZpbmFsbHkgaXQgZ29lcyBiZXlvbmQgb3VyIG9ic2VydmF0aW9uLiBZb3VyIG1pc3Npb24gaXMgdG8gd3JpdGUgYSBwcm9ncmFtIHRoYXQgaWRlbnRpZmllcyB0aGUgbGFzdCByZWZsZWN0aW9uIHBvaW50LjxcL3A+XHJcblxyXG48cD4mbmJzcDs8XC9wPlxyXG4iLCJpbnB1dCI6IjxwPlRoZSBpbnB1dCBjb25zaXN0cyBvZiBtdWx0aXBsZSBkYXRhc2V0cywgZWFjaCBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdC48XC9wPlxyXG5cclxuPHByZT5cclxuIE5cclxuIHUgIHYgIHdcclxueDxzdWI+MTxcL3N1Yj4geTxzdWI+MTxcL3N1Yj4gejxzdWI+MTxcL3N1Yj4gcjxzdWI+MTxcL3N1Yj5cclxuLi4uXHJcbng8c3ViPk48XC9zdWI+IHk8c3ViPk48XC9zdWI+IHo8c3ViPk48XC9zdWI+IHI8c3ViPk48XC9zdWI+PFwvcHJlPlxyXG5cclxuPHA+VGhlIGZpcnN0IGxpbmUgb2YgYSBkYXRhc2V0IGNvbnRhaW5zIGEgcG9zaXRpdmUgaW50ZWdlciBOIHdoaWNoIGlzIHRoZSBudW1iZXIgb2Ygc3BoZXJlcy4gVGhlIG5leHQgbGluZSBjb250YWlucyB0aHJlZSBpbnRlZ2VycyB1LCB2IGFuZCB3IHNlcGFyYXRlZCBieSBzaW5nbGUgc3BhY2VzLCB3aGVyZSAodSwgdiwgdykgaXMgdGhlIGRpcmVjdGlvbiBvZiB0aGUgbGFzZXIgcmF5IGluaXRpYWxseSBlbWl0dGVkIGZyb20gdGhlIG9yaWdpbi48XC9wPlxyXG5cclxuPHA+RWFjaCBvZiB0aGUgZm9sbG93aW5nIE4gbGluZXMgY29udGFpbnMgZm91ciBpbnRlZ2VycyBzZXBhcmF0ZWQgYnkgc2luZ2xlIHNwYWNlcy4gVGhlIGktdGggbGluZSBjb3JyZXNwb25kcyB0byB0aGUgaS10aCBzcGhlcmUsIGFuZCB0aGUgbnVtYmVycyByZXByZXNlbnQgdGhlIGNlbnRlciBwb3NpdGlvbiAoeGksIHlpLCB6aSkgYW5kIHRoZSByYWRpdXMgcmkuPFwvcD5cclxuXHJcbjxwPk4sIHUsIHYsIHcsIHhpLCB5aSwgemkgYW5kIHJpIHNhdGlzZnkgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zLjxcL3A+XHJcblxyXG48cHJlPlxyXG4xICZsZTsgTiAmbGU7IDEwMFxyXG4tMTAwICZsZTsgdSx2LHcgJmxlOyAxMDBcclxuLTEwMCAmbGU7IHg8c3ViPmk8XC9zdWI+LHk8c3ViPmk8XC9zdWI+LHo8c3ViPmk8XC9zdWI+Jm5ic3A7JmxlOyAxMDBcclxuNSAmbGU7IHI8c3ViPmk8XC9zdWI+Jm5ic3A7JmxlOyAzMFxyXG51PHN1cD4yPFwvc3VwPiZuYnNwOysgdjxzdXA+MjxcL3N1cD4mbmJzcDsrIHc8c3VwPjI8XC9zdXA+Jm5ic3A7Jmd0OyAwPFwvcHJlPlxyXG5cclxuPHA+WW91IGNhbiBhc3N1bWUgdGhhdCB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgc3VyZmFjZXMgb2YgYW55IHR3byBzcGhlcmVzIGlzIG5vIGxlc3MgdGhhbiAwLjEuIFlvdSBjYW4gYWxzbyBhc3N1bWUgdGhhdCB0aGUgb3JpZ2luICgwOyAwOyAwKSBpcyBsb2NhdGVkIG91dHNpZGUgb2YgYW55IHNwaGVyZSwgYW5kIGlzIGF0IGxlYXN0IDAuMSBkaXN0YW50IGZyb20gdGhlIHN1cmZhY2Ugb2YgYW55IHNwaGVyZS48XC9wPlxyXG5cclxuPHA+VGhlIHJheSBpcyBrbm93biB0byBiZSByZWZsZWN0ZWQgYnkgdGhlIHNwaGVyZSBzdXJmYWNlcyBhdCBsZWFzdCBvbmNlLCBhbmQgYXQgbW9zdCBmaXZlIHRpbWVzLiBZb3UgY2FuIGFzc3VtZSB0aGF0IHRoZSBhbmdsZSBiZXR3ZWVuIHRoZSByYXkgYW5kIHRoZSBsaW5lIGNvbm5lY3RpbmcgdGhlIHNwaGVyZSBjZW50ZXIgYW5kIHRoZSByZWZsZWN0aW9uIHBvaW50LCB3aGljaCBpcyBrbm93biBhcyB0aGUgYW5nbGUgb2YgcmVmbGVjdGlvbiAoaS5lLiAmdGhldGE7IGluIEZpZ3VyZSA2KSwgaXMgbGVzcyB0aGFuIDg1IGRlZ3JlZXMgZm9yIGVhY2ggcG9pbnQgb2YgcmVmbGVjdGlvbi48XC9wPlxyXG5cclxuPHA+VGhlIGxhc3QgZGF0YXNldCBpcyBmb2xsb3dlZCBieSBhIGxpbmUgY29udGFpbmluZyBhIHNpbmdsZSB6ZXJvLjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIGRhdGFzZXQgaW4gdGhlIGlucHV0LCB5b3Ugc2hvdWxkIHByaW50IHRoZSB4LSwgeS0gYW5kIHotY29vcmRpbmF0ZXMgb2YgdGhlIGxhc3QgcmVmbGVjdGlvbiBwb2ludCBzZXBhcmF0ZWQgYnkgc2luZ2xlIHNwYWNlcyBpbiBhIGxpbmUuIE5vIG91dHB1dCBsaW5lIHNob3VsZCBjb250YWluIGV4dHJhIGNoYXJhY3RlcnMuPFwvcD5cclxuXHJcbjxwPk5vIGNvb3JkaW5hdGUgdmFsdWVzIGluIHRoZSBvdXRwdXQgc2hvdWxkIGhhdmUgYW4gZXJyb3IgZ3JlYXRlciB0aGFuIDAuMDEuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMSIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiRW5nbGlzaCJ9XQ==

출처

ICPC > Regionals > Asia Pacific > Japan > Asia Regional Contest 2008 in Aizu E번

  • 문제를 번역한 사람: baekjoon
  • 문제의 오타를 찾은 사람: kipa00