Faza 0 (10 punktów)
Wczyta z pliku DRZ_IN.TXT opis struktury drzewa i zbuduje drzewo w pamięci komputera.
Faza 1 (10 punktów)
Znajdzie wierzchołek v taki, że suma kluczy jego potomków jest największa a następnie wypisze identyfikator znalezionego wierzchołka v do pliku DRZ_OUT_1.TXT.
Uwaga ! Zakładamy, że każdy wierzchołek jest swoim własnym potomkiem.
Faza 2 (10 punktów)
Znajdzie dwa wierzchołki u i v takie, że u jest przodkiem v i różnica ich kluczy (tzn. |Klucz(u)-Klucz(v)|) jest największa. Następnie wypisze identyfikatory znalezionych wierzchołków do pliku DRZ_OUT_2.TXT.
Faza 3 (10 punktów)
Znajdzie najmniejszy zbiór dominujący wczytanego drzewa i wypisze identyfikatory wierzchołków znajdujących się w tym zbiorze do pliku DRZ_OUT_3.TXT.
Pamiętaj, że Twój program powinien być efektywny czyli dla dowolnych danych wejściowych dawać odpowiedź po niezbyt długim czasie (nie więcej niż kilka sekund na przeciętnym komputerze). Dlatego zastanów się nad złożonością czasową poszczególnych faz swojego rozwiązania. Rozwiązania nieefektywne będą gorzej punktowane.
Wejście
W pierwszym wierszu pliku DRZ_IN.TXT znajduje się jedna liczba n, oznaczająca liczbę wierzchołków drzewa, n < 100000. Zakładamy, że identyfikatory wierzchołków są liczbami od 1 do n. Możemy założyć (choć nie jest to konieczne), że dowolny wierzchołek ma zawsze numer mniejszy niż jego potomkowie. W wierszu o numerze i+1 pliku DRZ_IN.TXT znajduje się opis wierzchołka o identyfikatorze i: dwie liczby naturalne p, k oddzielone spacją, gdzie p oznacza numer jego ojca a k klucz, -30000 < k < 30000. Jeśli p jest zerem, oznacza to, że dany wierzchołek jest korzeniem. Zakładamy, że plik DRZ_IN.TXT zawiera dane zapisane w poprawny sposób (opisany powyżej).
Wyjście
Pliki DRZ_OUT_1.TXT, DRZ_OUT_2.TXT, DRZ_OUT_3.TXT zawierają odpowiednie liczby oddzielone spacjami.
Przykład
Dla pliku DRZ_IN.TXT:
6 0 10 1 -10 1 15 3 0 3 -2 3 35Poprawny plik DRZ_OUT_1.TXT może mieć postać:
3Poprawny plik DRZ_OUT_2.TXT powinien mieć postać:
1 6Poprawny plik DRZ_OUT_3.TXT może mieć postać:
2 3
program ban;
uses
SysUtils;
{$apptype console}
begin
end.
Rozwiązania można przynieść na dyskietce, lub przesłać pocztą elektroniczną jako załącznik na adres: kowalik@mimuw.edu.pl
UWAGA! Proszę podpisywać rozwiązania (umieścić imię i nazwisko w pliku z rozwiązaniem) - także te wysyłane e-mailem !