Czy punkty mogą być wierzchołkami trójkąta?

Zadanie 10 z 21 · rozdział 9Trudność: 2 z 3geometriawarunkilisty

Treść zadania

Wczytaj współrzędne trzech punktów $A(x_A, y_A)$, $B(x_B, y_B)$, $C(x_C, y_C)$.
Wypisz Tak, jeśli punkty mogą być wierzchołkami trójkąta (czyli nie leżą na jednej prostej), a w przeciwnym razie Nie.

Dane wejściowe

Trzy linie — w każdej dwie liczby całkowite x y oddzielone spacją:

  • 1. linia: współrzędne punktu A
  • 2. linia: współrzędne punktu B
  • 3. linia: współrzędne punktu C

Dane wyjściowe

Jedno słowo: Tak albo Nie.

Uwagi

  • Punkty leżą na jednej prostej wtedy i tylko wtedy, gdy $(x_B - x_A)(y_C - y_A) - (y_B - y_A)(x_C - x_A) = 0$ (to wyrażenie jest równe podwojonemu polu trójkąta $ABC$, z dokładnością do znaku).
  • Jeśli dwa punkty się pokrywają, trójkąta nie da się zbudować.

Przykład

Wejście
-3 -2
-3 1
-3 0
Wyjście
Nie

Wszystkie trzy punkty leżą na prostej $x = -3$.

Potrzebujesz teorii?

Zasady obowiązujące w rozdziale 9

Zadania w tym rozdziale ćwiczą podstawowe operacje na listach: wczytywanie, przechodzenie pętlą, modyfikowanie elementów, wyszukiwanie i zliczanie.

Konwencje wspólne:

  • Każde zadanie (i każdy podpunkt) to osobny program: czyta standardowe wejście i wypisuje wynik na standardowe wyjście.
  • Lista na wejściu zajmuje dwie linie: w 1. linii jest liczba elementów n, a w 2. linii — n liczb oddzielonych pojedynczymi spacjami. Dodatkowe dane (np. szukany klucz) są w kolejnych liniach, po jednej wartości w linii.
  • Taką listę wczytasz np. tak:
    ```python
    n = int(input())
    lista = [int(x) for x in input().split()]
    `
  • Gdy wynikiem jest lista, wypisz ją instrukcją print(lista). Python wypisze ją w nawiasach kwadratowych, z elementami oddzielonymi przecinkiem i spacją, np. [4, 10, 8]. Pusta lista to [].
  • Jeśli zadanie mówi „oddzielone spacją” — użyj pojedynczej spacji.
  • Indeksy elementów liczymy od 0.
  • Program nie wypisuje komunikatów typu „Podaj liczbę:”.

Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.

Python uruchomi się w przeglądarce przy pierwszym teście.

Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.

Testy

Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.

Test 1

Nie uruchomiono
Wejście
0 0
1 1
2 0
Oczekiwane wyjście
Tak

Test 2

Nie uruchomiono
Wejście
0 0
1 1
2 2
Oczekiwane wyjście
Nie

Test 3

Nie uruchomiono
Wejście
1 1
1 1
1 1
Oczekiwane wyjście
Nie

Test 4

Nie uruchomiono
Wejście
0 0
0 0
3 4
Oczekiwane wyjście
Nie

Test 5

Nie uruchomiono
Wejście
-2 4
7 5
8 -8
Oczekiwane wyjście
Tak

Test 6

Nie uruchomiono
Wejście
2 3
4 6
-2 -3
Oczekiwane wyjście
Nie
Uruchom z własnymi danymi