powrót

V Olimpiada Informatyczna 1995/96

Zadanie: WIE
Autor: Krzysztof Diks
Wielokąt

Zawody I stopnia  
Plik źródłowyWIE.??? (np. PAS,C, CPP)
Plik wykonywalnyWIE.EXE
Plik wejściowyWIE.IN
Plik wyjściowyWIE.OUT

Powiemy, że dwa trójkąty przecinają się, jeśli ich wnętrza mają co najmniej jeden wspólny punkt. Wielokąt jest wypukły, jeśli każdy odcinek łączący dowolne dwa punkty tego wielokąta jest w nim zawarty. Trójkątem elementarnym w wielokącie wypukłym nazywamy każdy trójkąt, którego wierzchołki są wierzchołkami tego wielokąta. Triangulacją wielokąta wypukłego nazywamy każdy zbiór elementarnych trójkątów w tym wielokącie, w którym żadne dwa trójkąty nie przecinają się, a wszystkie razem pokrywają cały wielokąt. Dane są wielokąt i jego triangulacja. Jaka jest największa liczba trójkątów w tej triangulacji, które może przeciąć jeden elementarny trójkąt w tym wielokącie?

Przykład
Rozważmy następującą triangulację:


Trójkąt elementarny (1,3,5) przecina wszystkie trójkąty w tej triangulacji.

Zadanie
Napisz program, który:

Wejście
Pierwszy wiersz pliku WIE.IN zawiera liczbę n, 3<=n<=1000. Jest to liczba wierzchołków wielokąta. Wierzchołki wielokąta są ponumerowane kolejno 0,1,...,n-1, zgodnie z ruchem wskazówek zegara. Kolejne n-2 wiersze zawierają opisy trójkątów w triangulacji. W wierszu i+1, 1<=i<=n-2, zapisane są trzy liczby całkowite a, b, c, oddzielone pojedynczymi odstępami. Są to numery wierzchołków i-tego trójkąta w triangulacji.

Wyjście
W pierwszym i jedynym wierszu pliku WIE.OUT należy zapisać jedyną liczbę całkowitą - największą liczbę trójkątów w triangulacji, które przecina jeden elementarny trójkąt w wielokącie wejsciowym.

Przykład
Dla pliku wejściowego WIE.IN:

6
0 1 2
2 4 3
0 5 4
2 4 0
poprawnym rozwiązaniem jest plik tekstowy WIE.OUT:
4

Twój program powinien szukać pliku WIE.IN w katalogu bieżącym i tworzyć plik WIE.OUT również w bieżącym katalogu. Plik zawierający napisany przez Ciebie program w postaci źródłowej powinien mieć nazwę WIE.???, gdzie zamiast ??? należy wpisać co najwyżej trzyliterowy skrót nazwy użytego języka programowania. Ten sam program w postaci wykonalnej powinien być zapisany w pliku WIE.EXE



powrót