Module: 기하학


Problem

3 /7


Lazy Vasya와 Half-Life 3 출시

Theory Click to read/hide

선은 5가지 방법으로 정의할 수 있습니다.
1) 등식\( y = kx + b\); 학교에서 가르치는 최초의 직선 방정식은 손으로 만들고 계산하기에는 편리하지만 프로그램에서 사용하는 것은 매우 불편합니다.
2) 2포인트로 - 실제로 매우 편리하지만 적용 범위가 다소 좁습니다.
3) 직선과 점의 법선 벡터 - 직선에 대한 법선 벡터는 직선에 수직인 벡터입니다. 자세한 내용은 아래에서 확인하세요.
4) 직선과 점의 지시 벡터를 따라-지시 벡터는 직선에 있고 법선 벡터에 수직인 벡터입니다(음, 논리적).
5) 직선의 방정식 \(ax + by + c = 0\); 직선의 고전 방정식, 대부분의 경우 가장 보편적입니다. 이제 그에 대해 알아보십시오.
<사업부>

그런 직선의 법선 벡터 좌표: \((a; b)\) 또는 \( (-a; -b)\).

이러한 선의 방향 벡터 좌표: \((-b; a)\) 또는 \ ((b; -a)\).

선이 평행인 경우:
\({a1 \over b1} = {a2 \over b2}\).

점에서 선까지의 거리(주의: 거리가 음수일 수 있으며 모두 선의 어느 쪽에 점이 있는지에 따라 다름):
\({(a \cdot x_1 + b \cdot y_1 + c) \over \sqrt{a^2 + b^2}}\),
여기서 x1, y1는 점의 좌표입니다.

법선 벡터와 점, 또는 방향 벡터와 점에서 선을 구성하는 것은 2점에서 선을 구성하는 것으로 귀결되므로 살펴보겠습니다(또한 가장 일반적으로 사용되는 ).< /p>

If x1, y1, x 2, y2 - 각각 첫 번째와 두 번째 점의 좌표, 그런 다음

\(a = y_1 - y_2\)

\(b = x_2 - x_1\)

\(c = x_1 \cdot y_2 - x_2 \cdot y_1\)

Problem

기적이 일어났습니다! 전 세계 수백만 명이 꿈꿨던 대망의 Half-Life 3가 드디어 출시되었습니다! Vasya는 또한 전설적인 시리즈의 연속을 고대하고 있었고 한 달 동안 학교 식당에서 식사도하지 않았기 때문에이 걸작을 사기에 충분했습니다! 그의 길을 가로막는 유일한 문제는 거대한 대수학 숙제입니다. 수업 시간에 그는 직선이라는 새로운 주제를 배웠고 이제 그는 2개의 점을 통과하는 직선을 만드는 작업에 N개의 작업을 수행해야 합니다. 하지만 당신은 정말로 플레이하고 싶고 다음날 친구들에게 멋진 그래픽이 무엇인지 알려주세요 ... 그래서 그는 친구 인 당신에게 그를 도와달라고 요청했습니다.
 
입력
첫 번째 줄에는 첫 번째 점의 좌표(X1, Y1), ( \(-50 <= X_1, Y_1 <= 50\)).
두 번째 줄에는 두 번째 지점의 좌표(X2, Y2), ( \(-50 <= X_2, Y_2 <= 50\)).
 
출력
한 줄에 3개의 정수를 연속으로 인쇄합니다: 직선 방정식의 계수 a, b, c.
 
참고: 작업이 작동하지 않지만 모든 것이 정확하다고 확신하는 경우 모든 계수에 -1을 곱해 보십시오. 이 작업은 강의/이론에서 가져온 공식을 사용했다고 가정합니다.

 

<헤드> <일># <몸>
입력 출력
1 <사업부>-1 -1 <사업부>1 1 -2 2 0