Геометрия




Прямая может задаваться 5 разными способами:
1) уравнение y = kx + b; самое первое уравнение прямой, которому учат в школе - удобно для построения и вычислений вручную, но в программе его использование весьма неудобно
2) по 2 точкам, лежащим на ней - на самом деле достаточно удобно, но имеет достаточно узкое применение
3) по вектору нормали прямой и точке - вектор нормали к прямой - это вектор, перпендикулярный ей, подробнее о нём ниже
4) по направляющему вектору прямой и точке - направляющий вектор - это вектор, лежащий на прямой и перпендикулярный вектору нормали (ну логично), о нём ниже
5) уравнение прямой ax + by + c = 0; классическое уравнение прямой, в большинстве случаев наиболее универсально (по моему мнению, конечно), сейчас о нём:
 
Координаты вектора нормали такой прямой: (a; b) или (-a; -b)
Координаты направляющего вектора такой прямой: (-b; a) или (b; -a)
 
Прямые параллельны, если a1/b1 = a2/b2
 
Расстояние от точки до прямой (будьте осторожны: расстояние может быть отрицательным, всё зависит от того, с какой стороны от прямой лежит точка):
(a*x1 + b*y1 + c)/sqrt(a^2 + b^2), где x1, y1 - координаты точки
 
Построение прямой по вектору нормали и точке или направляющему вектору и точке сводится к построению прямой по 2 точкам, так что рассмотрим именно его (оно, к тому же, используется наиболее часто):
Если x1, y1, x2, y2 - координаты первой и второй точек соответственно, то
a  = y1 - y2
b = x2 - x1
c = x1 * y2 - x2 * y1

Task
Time limit: 1000 ms,
Memory limit: 32 Mb

Свершилось чудо! Наконец-то вышел долгожданный Half-Life 3, о котором мечтали миллионы людей по всему миру! Вася тоже с нетерпением ждал продолжения легендарной серии, и даже не ел в школьной столовой целый месяц,
чтобы ему хватило на покупку этого шедевра! Единственная проблема, которая стоит у него на пути - огромное домашнее задание по алгебре. В классе он прошёл новую тему - прямые, и теперь ему нужно сделать аж N задач на 
построение прямой через 2 точки. Но ведь так хочется поиграть, а на следующий день рассказывать друзьям, какой же там классный графон... Поэтому он попросил Вас, своего друга, помочь ему.
 
Входные данные:
В первой строке вводятся координаты первой точки (X1, Y1), (-50 <= X1, Y1 <= 50).
Во второй строке вводятся координаты второй точки (X2, Y2), (-50 <= X1, Y1 <= 50).
 
Выходные данные:
В единственной строке выведите подряд 3 целых числа: коэффициенты a, b, c уравнения прямой.
 
Примечание: если у вас не заходит задача, но вы уверены, что всё правильно - попробуйте умножить все коэффициенты на -1. Задача предполагает, что вы использовали формулы, взятые с лекции/теории.
 
Пример:
Входные данные:
-1 -1
1 1
Выходные данные:
-2 2 0

Автор: Кашуков Андрей

Auto CHOOSE THE PROGRAMMING NECESSARY LANGUAGE!
Attach the program source file:
or enter the source code in the language:

Rules for designing programs and a list of errors during automatic task verification
           

Results: