Problemi 16
Kërkesa
Jepen kordinatat e tre pikave në një plan: \((x_1, y_1), (x_2, y_2), (x_3, y_3)\). Gjeni nëse këto pika janë kulme të një trekëndëshi kënddrejtë.
Referenca: https://www.codechef.com/problems/RIGHTRI
Shembull
$ cat input.txt
5
0 5 19 5 0 0
17 19 12 16 19 0
5 14 6 13 8 7
0 4 0 14 3 14
0 2 0 14 9 2
$ python3 prog.py < input.txt
yes
no
no
yes
yes
Janë dhënë numrat x1, y1, x2, y2, x3, y3.
Zgjidhja 1
for _ in range(int(input())):
x1, y1, x2, y2, x3, y3 = map(int, input().split())
d1 = (x1 - x2)**2 + (y1 - y2)**2
d2 = (x1 - x3)**2 + (y1 - y3)**2
d3 = (x2 - x3)**2 + (y2 - y3)**2
if max(d1, d2, d3) * 2 == d1 + d2 + d3:
print('yes')
else:
print('no')
Sqarime
Përdorim teoremën e Pitagorës (\(a^2 + b^2 = c^2\)).
Zgjidhja 2
for _ in range(int(input())):
x1, y1, x2, y2, x3, y3 = map(int, input().split())
p1 = (x1 - x2)*(x1 - x3) + (y1 - y2)*(y1 - y3)
p2 = (x1 - x2)*(x2 - x3) + (y1 - y2)*(y2 - y3)
p3 = (x1 - x3)*(x2 - x3) + (y1 - y3)*(y2 - y3)
if p1*p2*p3 == 0:
print('yes')
else:
print('no')
Sqarime
Përdorim faktin që prodhimi i dy vektorëve pingulë është zero.