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

문제

동규는 자신의 쌍둥이 아들 승환이와 규현이를 위해 매년 삼각형 모앙의 생일 케익을 사온다. 동규가 사오는 케익의 모양은 매년 다르다. 케익의 옆은 초콜릿 아이싱이 덮여있고, 위에는 핑크 아이싱이 덮여있다. 승환이와 규현이는 이 2개의 아이싱을 모두 좋아하기 때문에, 서로 같은 양을 먹으려고 한다.

규현이와 승환이가 같은 양을 먹기 위해서 케익을 자르는 프로그램을 작성하시오.

삼각형 이퀼라이저란 삼각형을 동일한 둘레와 넓이로 나누는 선이다. 이 선은 삼각형을 통과한다. 아래 그림의 선은 모두 그 삼각형의 삼각형 이퀼라이저이다.

일반적으로 삼각형은 1, 2, 또는 3개의 이퀼라이저를 갖는다. (2개인 경우는 특수한 조건일 때만 나타난다)

삼각형이 주어졌을 때, 삼각형 이퀼라이저를 하나만 구하는 프로그램을 작성하시오. 이때, double을 이용해서 계산을 하면 된다.

입력

첫째 줄에 테스트 케이스의 개수 P(1 ≤ P ≤ 1000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 각 줄은 6개의 실수로 이루어져 있다. 6개의 실수는 삼각형의 꼭짓점 좌표이고, x0, y0, x1, y1, x2, y2 순서이다.

입력으로 주어지는 실수는 절댓값이 20보다 작으며, 항상 소숫점 5째자리까지 주어진다.

출력

각 테스트 케이스에 대해서, 주어진 삼각형의 이퀼라이저의 직선의 방정식을 출력한다. 방정식을 Ax + By = C 꼴로 나타낸 뒤, A, B, C를 공백으로 구분해서 소수점 5째자리까지 출력하면 된다. 이때, A*A + B*B = 1.0, A >= 0이다.

예제 입력 1

4
0 0 4 10 8 0
0 0 10 8 8 0
0 0 -8 4.5 5 0
0 0 -5 4.6 5 0

예제 출력 1

1.00000 0.00000 4.00000
0.99347 -0.11408 5.98771
0.45018 0.89294 0.81417
0.66369 0.74801 1.01564
W3sicHJvYmxlbV9pZCI6IjI2OTIiLCJwcm9ibGVtX2xhbmciOiIwIiwidGl0bGUiOiJcdWMzMGRcdWI0NjVcdWM3NzQgXHVhZGRjXHVkNjA0XHVjNzc0XHVjNjQwIFx1YzJiOVx1ZDY1OFx1Yzc3NFx1Yzc1OCBcdWMwZGRcdWM3N2MgXHVjZjAwXHVjNzc1IiwiZGVzY3JpcHRpb24iOiI8cD5cdWIzZDlcdWFkZGNcdWIyOTQgXHVjNzkwXHVjMmUwXHVjNzU4IFx1YzMwZFx1YjQ2NVx1Yzc3NCBcdWM1NDRcdWI0ZTQgXHVjMmI5XHVkNjU4XHVjNzc0XHVjNjQwIFx1YWRkY1x1ZDYwNFx1Yzc3NFx1Yjk3YyBcdWM3MDRcdWQ1NzQgXHViOWU0XHViMTQ0IFx1YzBiY1x1YWMwMVx1ZDYxNSBcdWJhYThcdWM1NTlcdWM3NTggXHVjMGRkXHVjNzdjIFx1Y2YwMFx1Yzc3NVx1Yzc0NCBcdWMwYWNcdWM2MjhcdWIyZTQuIFx1YjNkOVx1YWRkY1x1YWMwMCBcdWMwYWNcdWM2MjRcdWIyOTQgXHVjZjAwXHVjNzc1XHVjNzU4IFx1YmFhOFx1YzU5MVx1Yzc0MCBcdWI5ZTRcdWIxNDQgXHViMmU0XHViOTc0XHViMmU0LiBcdWNmMDBcdWM3NzVcdWM3NTggXHVjNjA2XHVjNzQwIFx1Y2QwOFx1Y2Y1Y1x1YjliZiBcdWM1NDRcdWM3NzRcdWMyZjFcdWM3NzQgXHViMzZlXHVjNWVjXHVjNzg4XHVhY2UwLCBcdWM3MDRcdWM1ZDBcdWIyOTQgXHVkNTUxXHVkMDZjIFx1YzU0NFx1Yzc3NFx1YzJmMVx1Yzc3NCBcdWIzNmVcdWM1ZWNcdWM3ODhcdWIyZTQuIFx1YzJiOVx1ZDY1OFx1Yzc3NFx1YzY0MCBcdWFkZGNcdWQ2MDRcdWM3NzRcdWIyOTQgXHVjNzc0IDJcdWFjMWNcdWM3NTggXHVjNTQ0XHVjNzc0XHVjMmYxXHVjNzQ0IFx1YmFhOFx1YjQ1MCBcdWM4OGJcdWM1NDRcdWQ1NThcdWFlMzAgXHViNTRjXHViYjM4XHVjNWQwLCBcdWMxMWNcdWI4NWMgXHVhYzE5XHVjNzQwIFx1YzU5MVx1Yzc0NCBcdWJhMzlcdWM3M2NcdWI4MjRcdWFjZTAgXHVkNTVjXHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWFkZGNcdWQ2MDRcdWM3NzRcdWM2NDAgXHVjMmI5XHVkNjU4XHVjNzc0XHVhYzAwIFx1YWMxOVx1Yzc0MCBcdWM1OTFcdWM3NDQgXHViYTM5XHVhZTMwIFx1YzcwNFx1ZDU3NFx1YzExYyBcdWNmMDBcdWM3NzVcdWM3NDQgXHVjNzkwXHViOTc0XHViMjk0IFx1ZDUwNFx1Yjg1Y1x1YWRmOFx1YjdhOFx1Yzc0NCBcdWM3OTFcdWMxMzFcdWQ1NThcdWMyZGNcdWM2MjQuPFwvcD5cclxuXHJcbjxwPlx1YzBiY1x1YWMwMVx1ZDYxNSBcdWM3NzRcdWQwM2NcdWI3N2NcdWM3NzRcdWM4MDBcdWI3ODAgXHVjMGJjXHVhYzAxXHVkNjE1XHVjNzQ0IFx1YjNkOVx1Yzc3Y1x1ZDU1YyBcdWI0NThcdWI4MDhcdWM2NDAgXHViMTEzXHVjNzc0XHViODVjIFx1YjA5OFx1YjIwNFx1YjI5NCBcdWMxMjBcdWM3NzRcdWIyZTQuIFx1Yzc3NCBcdWMxMjBcdWM3NDAgXHVjMGJjXHVhYzAxXHVkNjE1XHVjNzQ0IFx1ZDFiNVx1YWNmY1x1ZDU1Y1x1YjJlNC4gXHVjNTQ0XHViNzk4IFx1YWRmOFx1YjliY1x1Yzc1OCBcdWMxMjBcdWM3NDAgXHViYWE4XHViNDUwIFx1YWRmOCBcdWMwYmNcdWFjMDFcdWQ2MTVcdWM3NTggXHVjMGJjXHVhYzAxXHVkNjE1IFx1Yzc3NFx1ZDAzY1x1Yjc3Y1x1Yzc3NFx1YzgwMFx1Yzc3NFx1YjJlNC48XC9wPlxyXG5cclxuPHA+XHVjNzdjXHViYzE4XHVjODAxXHVjNzNjXHViODVjIFx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc0MCAxLCAyLCBcdWI2MTBcdWIyOTQgM1x1YWMxY1x1Yzc1OCBcdWM3NzRcdWQwM2NcdWI3N2NcdWM3NzRcdWM4MDBcdWI5N2MgXHVhYzE2XHViMjk0XHViMmU0LiAoMlx1YWMxY1x1Yzc3OCBcdWFjYmRcdWM2YjBcdWIyOTQgXHVkMmI5XHVjMjE4XHVkNTVjIFx1Yzg3MFx1YWM3NFx1Yzc3YyBcdWI1NGNcdWI5Y2MgXHViMDk4XHVkMGMwXHViMDljXHViMmU0KTxcL3A+XHJcblxyXG48cCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj48aW1nIGFsdD1cIlwiIHNyYz1cIlwvdXBsb2FkXC9pbWFnZXNcL3RyZXEucG5nXCIgc3R5bGU9XCJ3aWR0aDogNTg2cHg7IGhlaWdodDogMTY5cHg7XCIgXC8+PFwvcD5cclxuXHJcbjxwPlx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc3NCBcdWM4ZmNcdWM1YjRcdWM4NGNcdWM3NDQgXHViNTRjLCBcdWMwYmNcdWFjMDFcdWQ2MTUgXHVjNzc0XHVkMDNjXHViNzdjXHVjNzc0XHVjODAwXHViOTdjIFx1ZDU1OFx1YjA5OFx1YjljYyBcdWFkNmNcdWQ1NThcdWIyOTQgXHVkNTA0XHViODVjXHVhZGY4XHViN2E4XHVjNzQ0IFx1Yzc5MVx1YzEzMVx1ZDU1OFx1YzJkY1x1YzYyNC4gXHVjNzc0XHViNTRjLCBkb3VibGVcdWM3NDQgXHVjNzc0XHVjNmE5XHVkNTc0XHVjMTFjIFx1YWNjNFx1YzBiMFx1Yzc0NCBcdWQ1NThcdWJhNzQgXHViNDFjXHViMmU0LjxcL3A+XHJcbiIsImlucHV0IjoiPHA+XHVjY2FiXHVjOWY4IFx1YzkwNFx1YzVkMCBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNzU4IFx1YWMxY1x1YzIxOCBQKDEgJmxlOyBQICZsZTsgMTAwMClcdWFjMDAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LiBcdWFjMDEgXHVkMTRjXHVjMmE0XHVkMmI4IFx1Y2YwMFx1Yzc3NFx1YzJhNFx1YjI5NCBcdWQ1NWMgXHVjOTA0XHViODVjIFx1Yzc3NFx1YjhlOFx1YzViNFx1YzgzOCBcdWM3ODhcdWFjZTAsIFx1YWMwMSBcdWM5MDRcdWM3NDAgNlx1YWMxY1x1Yzc1OCBcdWMyZTRcdWMyMThcdWI4NWMgXHVjNzc0XHViOGU4XHVjNWI0XHVjODM4IFx1Yzc4OFx1YjJlNC4gNlx1YWMxY1x1Yzc1OCBcdWMyZTRcdWMyMThcdWIyOTQgXHVjMGJjXHVhYzAxXHVkNjE1XHVjNzU4IFx1YWYyZFx1YzlkM1x1YzgxMCBcdWM4OGNcdWQ0NWNcdWM3NzRcdWFjZTAsIHgwLCB5MCwgeDEsIHkxLCB4MiwgeTIgXHVjMjFjXHVjMTFjXHVjNzc0XHViMmU0LjxcL3A+XHJcblxyXG48cD5cdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWMwXHViMjk0IFx1YzJlNFx1YzIxOFx1YjI5NCBcdWM4MDhcdWIzMTNcdWFjMTJcdWM3NzQgMjBcdWJjZjRcdWIyZTQgXHVjNzkxXHVjNzNjXHViYTcwLCBcdWQ1NmRcdWMwYzEgXHVjMThjXHVjMjJiXHVjODEwIDVcdWM5ZjhcdWM3OTBcdWI5YWNcdWFlNGNcdWM5YzAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPlx1YWMwMSBcdWQxNGNcdWMyYTRcdWQyYjggXHVjZjAwXHVjNzc0XHVjMmE0XHVjNWQwIFx1YjMwMFx1ZDU3NFx1YzExYywgXHVjOGZjXHVjNWI0XHVjOWM0IFx1YzBiY1x1YWMwMVx1ZDYxNVx1Yzc1OCBcdWM3NzRcdWQwM2NcdWI3N2NcdWM3NzRcdWM4MDBcdWM3NTggXHVjOWMxXHVjMTIwXHVjNzU4IFx1YmMyOVx1YzgxNVx1YzJkZFx1Yzc0NCBcdWNkOWNcdWI4MjVcdWQ1NWNcdWIyZTQuIFx1YmMyOVx1YzgxNVx1YzJkZFx1Yzc0NCBBeCArIEJ5ID0gQyBcdWFmMzRcdWI4NWMgXHViMDk4XHVkMGMwXHViMGI4IFx1YjRhNCwgQSwgQiwgQ1x1Yjk3YyBcdWFjZjVcdWJjMzFcdWM3M2NcdWI4NWMgXHVhZDZjXHViZDg0XHVkNTc0XHVjMTFjIFx1YzE4Y1x1YzIxOFx1YzgxMCA1XHVjOWY4XHVjNzkwXHViOWFjXHVhZTRjXHVjOWMwIFx1Y2Q5Y1x1YjgyNVx1ZDU1OFx1YmE3NCBcdWI0MWNcdWIyZTQuIFx1Yzc3NFx1YjU0YywgQSpBICsgQipCID0gMS4wLCBBICZndDs9IDBcdWM3NzRcdWIyZTQuPFwvcD5cclxuIiwiaGludCI6IiIsIm9yaWdpbmFsIjoiMCIsImh0bWxfdGl0bGUiOiIwIiwicHJvYmxlbV9sYW5nX3Rjb2RlIjoiS29yZWFuIn0seyJwcm9ibGVtX2lkIjoiMjY5MiIsInByb2JsZW1fbGFuZyI6IjEiLCJ0aXRsZSI6IkN1dHRpbmcgdGhlIENha2UiLCJkZXNjcmlwdGlvbiI6IjxwPkZvciBlYWNoIGJpcnRoZGF5IG9mIHR3aW5zIEphbWVzIGFuZCBKb2huLCB0aGVpciBtb3RoZXIgYmFrZXMgYSBzcGVjaWFsIHRyaWFuZ3VsYXIgYmlydGhkYXkgY2FrZSB3aXRoIGEgZGlmZmVyZW50IHNoYXBlIGVhY2ggeWVhci4gVGhlIHNpZGVzIG9mIHRoZSBjYWtlIGFyZSBmcm9zdGVkIHdpdGggY2hvY29sYXRlIGljaW5nIGFuZCB0aGUgdG9wIGlzIGZyb3N0ZWQgd2l0aCBzcGVjaWFsIHBpbmsgaWNpbmcuIEphbWVzIGFuZCBKb2huIGJvdGggbGlrZSBib3RoIHR5cGVzIG9mIGljaW5nIGFuZCBpbnNpc3QgdGhhdCB0aGV5IGdldCB0aGVpciBlcXVhbCBzaGFyZSBvZiBlYWNoLjxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdG8gaGVscCBKYW1lcyBhbmQgSm9obiBjdXQgdGhlIGNha2Ugc28gdGhleSBlYWNoIGdldCBhbiBlcXVhbCBzaGFyZS4gQSB0cmlhbmdsZSBlcXVhbGl6ZXIgaXMgYSBsaW5lIHRocm91Z2ggYSB0cmlhbmdsZSB0aGF0IHNpbXVsdGFuZW91c2x5IGRpdmlkZXMgdGhlIHBlcmltZXRlciBhbmQgYXJlYSBvZiB0aGUgdHJpYW5nbGUgaW50byB0d28gZXF1YWwgcGllY2VzLiBJZiB0aGUgdHJpYW5nbGUgaXMgaXNvc2NlbGVzLCB0aGUgYmlzZWN0b3Igb2YgdGhlIGFuZ2xlIGJldHdlZW4gdHdvIGVxdWFsIHNpZGVzIGlzIHN1Y2ggYSBsaW5lIChBIGFuZCBCIGJlbG93KS4gSW4gZ2VuZXJhbCwgYSB0cmlhbmdsZSBtYXkgaGF2ZTEsIDIgb3IgMyBzdWNoIGxpbmVzICgyIHJlcXVpcmVzIHNwZWNpYWwgY29uZGl0aW9ucyBub3QgbGlrZWx5IHRvIGJlIGZvdW5kIGluIGEgcmFuZG9tIHRyaWFuZ2xlKS48XC9wPlxyXG5cclxuPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+PGltZyBhbHQ9XCJcIiBzcmM9XCJcL3VwbG9hZFwvaW1hZ2VzXC90cmVxLnBuZ1wiIHN0eWxlPVwiaGVpZ2h0OjE2OXB4OyB3aWR0aDo1ODZweFwiIFwvPjxcL3A+XHJcblxyXG48cD5Xcml0ZSBhIHByb2dyYW0gdG8gY29tcHV0ZSB0aGUgZXF1YXRpb24gb2Ygb25lIHN1Y2ggZGl2aWRpbmcgbGluZSAoaXQgZG9lcyBub3QgbWF0dGVyIHdoaWNoIG9uZSkgZm9yIGEgbm9uLWRlZ2VuZXJhdGUgaW5wdXQgdHJpYW5nbGUuIFlvdSBzaG91bGQgdXNlIGRvdWJsZS1wcmVjaXNpb24gY2FsY3VsYXRpb25zIGZvciBpbnRlcm1lZGlhdGUgdmFsdWVzLjxcL3A+XHJcbiIsImlucHV0IjoiPHA+VGhlIGZpcnN0IGxpbmUgb2YgaW5wdXQgY29udGFpbnMgYSBzaW5nbGUgaW50ZWdlciBQLCAoMSAmbGU7IFAgJmxlOyAxMDAwKSwgd2hpY2ggaXMgdGhlIG51bWJlciBvZiBkYXRhIHNldHMgdGhhdCBmb2xsb3cuIEVhY2ggZGF0YSBzZXQgY29uc2lzdHMgb2YgYSBzaW5nbGUgbGluZSBjb250YWluaW5nIGEgc2luZ2xlIGRlY2ltYWwgaW50ZWdlciBhbmQgNiBmbG9hdGluZyBwb2ludCBudW1iZXJzLiBUaGUgaW50ZWdlciBpcyB0aGUgZGF0YSBzZXQgbnVtYmVyIChzdGFydGluZyBhdCAxKS4gVGhlIGZsb2F0aW5nLXBvaW50IG51bWJlcnMgYXJlIHRoZSBjb29yZGluYXRlcyBvZiB0aGUgdmVydGljZXMgb2YgdGhlIGlucHV0IHRyaWFuZ2xlOiB4MCwgeTAsIHgxLCB5MSwgeDIsIHkyLjxcL3A+XHJcblxyXG48cD5cdWM3ODVcdWI4MjVcdWM3M2NcdWI4NWMgXHVjOGZjXHVjNWI0XHVjOWMwXHViMjk0IFx1YzJlNFx1YzIxOFx1YjI5NCBcdWM4MDhcdWIzMTNcdWFjMTJcdWM3NzQgMjBcdWJjZjRcdWIyZTQgXHVjNzkxXHVjNzNjXHViYTcwLCBcdWQ1NmRcdWMwYzEgXHVjMThjXHVjMjJiXHVjODEwIDVcdWM5ZjhcdWM3OTBcdWI5YWNcdWFlNGNcdWM5YzAgXHVjOGZjXHVjNWI0XHVjOWM0XHViMmU0LjxcL3A+XHJcbiIsIm91dHB1dCI6IjxwPkZvciBlYWNoIGRhdGEgc2V0LCB0aGVyZSBpcyBhIHNpbmdsZSBsaW5lIG9mIG91dHB1dC4gVGhlIGxpbmUgY29udGFpbnMgYSBkZWNpbWFsIGludGVnZXIgZ2l2aW5nIHRoZSBkYXRhIHNldCBudW1iZXIgZm9sbG93ZWQgYnkgYSBzaW5nbGUgc3BhY2UsIGZvbGxvd2VkIGJ5IDMgc3BhY2Utc2VwYXJhdGVkIGZsb2F0aW5nLXBvaW50IG51bWJlcnMgdG8gNSBkZWNpbWFsIHBsYWNlcy4gVGhlIDMgZmxvYXRpbmctcG9pbnQgdmFsdWVzIGFyZSB0aGUgY29lZmZpY2llbnRzIChBLCBCIGFuZCBDKSBvZiB0aGUgZXF1YXRpb24gb2YgdGhlIGVxdWFsaXplciBsaW5lOjxcL3A+XHJcblxyXG48cHJlPlxyXG5BICogeCArIEIgKiB5ID0gQzxcL3ByZT5cclxuXHJcbjxwPndoZXJlIEEqQSArIEIqQiA9IDEuMCBhbmQgQSAmZ3Q7PSAwLjxcL3A+XHJcbiIsImhpbnQiOiIiLCJvcmlnaW5hbCI6IjEiLCJodG1sX3RpdGxlIjoiMCIsInByb2JsZW1fbGFuZ190Y29kZSI6IkVuZ2xpc2gifV0=

출처

ICPC > Regionals > North America > Greater New York Region > 2010 Greater New York Programming Contest I번