W pliku dane_trojkaty.txt znajduje się 500 liczb całkowitych dodatnich. Każda liczba jest zapisana w osobnym wierszu, żadna liczba nie występuje w pliku więcej niż jeden raz. Liczby podane w pliku dane_trojkaty.txt to długości odcinków, z których będziemy próbować budować trójkąty.
Napisz program(-y), który pozwoli rozwiązać poniższe zadania. Odpowiedzi zapisz w pliku wyniki_trojkaty.txt. Odpowiedź do każdego zadania podaj w osobnym wierszu, poprzedzając ją numerem zadania.
5.1.
Wypisz wszystkie trójki kolejnych liczb z pliku dane_trojkaty.txt, które są długościami boków trójkąta prostokątnego.
Przykład
Rozważmy plik składający się z dziesięciu liczb: 8, 7, 4, 3, 5, 9, 12, 13, 85, 84. Wynikiem są dwie trójki liczb: 4, 3, 5 oraz 13, 85, 84. Trójkąt prostokątny tworzą też odcinki o bokach 5, 12 i 13, ale liczby te nie są kolejnymi liczbami w podanym pliku.
5.2.
Podaj największy obwód trójkąta, którego boki mają długości równe liczbom występującym w różnych wierszach pliku dane_trojkaty.txt.
Przykład
Dla pliku składającego się z dziesięciu liczb: 10, 18, 70, 100, 15, 13, 21, 12, 1, 2 wynikiem jest 54, ponieważ trójkąt o największym obwodzie ma boki 18, 15 i 21.
5.3.
Podaj, ile nieprzystających trójkątów można utworzyć z odcinków o długościach podanych w pliku dane_trojkaty.txt.
Uwaga: Dwa trójkąty są przystające wtedy i tylko wtedy, gdy trzy boki jednego trójkąta są odpowiednio równe trzem bokom drugiego trójkąta, np. trójkąt o bokach (10, 18, 15) jest
Przykład
Dla pliku składającego się z dziesięciu liczb: 10, 18, 70, 100, 15, 13, 21, 12, 1, 2 wynikiem jest 21, gdyż z podanych długości odcinków można utworzyć 21 trójkątów o następujących bokach:
(10, 18, 15); (10, 18, 13); (10, 18, 21); (10, 18, 12); (10, 15, 13); (10, 15, 21); (10, 15, 12); (10, 13, 21); (10, 13, 12); (10, 21, 12); (18, 15, 13); (18, 15, 21); (18, 15, 12); (18, 13, 21); (18, 13, 12); (15, 13, 21); (15, 13, 12); (15, 21, 12); (13, 21, 12); (13, 12, 2); (18, 21, 12).
Comments