Задача №130 (дубль — №7379)
Заданы координаты трёх вершин прямоугольника. Найдите координаты четвертой вершины.
Входные данные
В единственной строке записано шесть чисел — координаты трёх точек.
Выходные данные
Два числа, координаты искомой вершины прямоугольника. Все входные и выходные данные — целые числа, не превышающие по модулю [latex]100[/latex].
Тесты
Входные данные | Выходные данные |
[latex]0[/latex] [latex]0[/latex] [latex]0[/latex] [latex]1[/latex] [latex]2[/latex] [latex]1[/latex] | [latex]2[/latex] [latex]0[/latex] |
[latex]1\, 4\, 4\, 0\, 0\, 2[/latex] | [latex]5\, 2[/latex] |
[latex]-100[/latex] [latex]-100[/latex] [latex]100[/latex] [latex]100[/latex] [latex]100[/latex] [latex]-100[/latex] | [latex]-100[/latex] [latex]100[/latex] |
[latex]2[/latex] [latex]-1[/latex] [latex]3[/latex] [latex]1[/latex] [latex]-2[/latex] [latex]1[/latex] | [latex]-1[/latex] [latex]3[/latex] |
[latex]8\, 0\, 1\, 6\, 0\, 4[/latex] | [latex]9\, 2[/latex] |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
#include <iostream> using namespace std; int main() { int x1, x2, x3, y1, y2, y3; cin >> x1 >> y1 >> x2 >> y2 >> x3 >> y3; if ((x2-x1)*(x3-x1)+(y2-y1)*(y3-y1)==0) { cout << x2+x3-x1 << " " << y2+y3-y1; } else if ((x2-x1)*(x3-x2)+(y2-y1)*(y3-y2)==0) { cout << x1+x3-x2 << " " << y1+y3-y2; } else if ((x3-x1)*(x3-x2)+(y3-y1)*(y3-y2)==0) { cout << x1+x2-x3 << " " << y1+y2-y3; } return 0; } |
Решение задачи
Прямоугольник
Ссылки
Условие задачи на e-olymp
Код решения
Засчитал.
Жаль, не удалось попасть в целые координаты на рисунке. Тогда это помогло бы в решении.
Кстати, этот же код решает и задачу №7379.