WEiTI Kwalifikacje na AMPPZ / CEPC, 13 października 2007 Zadanie C Powierzchnia drzewa W pewnym eksperymencie naukowym analizuje się ciąg danych pochodzących z pomiarów. Jeden z badaczy wysunął hipotezę, Ŝe waŜne wnioski z pomiarów będzie moŜna wyciągnąć, jeŜeli uda się scharakteryzować syntetycznie historię wahań wartości danych. Zwykle stosowane do tego celu wyznaczanie róŜnic kolejnych wartości nie daje dobrej charakterystyki ciągu, gdyŜ uwzględnia tylko bezpośrednie sąsiedztwo próbek. Po dłuŜszych dyskusjach zaproponowano wykorzystanie w analizie struktury binarnego drzewa szukania. Jak wiadomo, dla tego samego zbioru danych kształt drzewa szukania zaleŜy od kolejności wstawiania elementów do drzewa. Postanowiono zbadać przydatność hipotezy przeprowadzając obliczenia pola powierzchni prostokąta pokrywającego binarne drzewo szukania utworzone dla ciągu danych. Przyjęto następujące ustalenia: 1. węzły drzewa umieszczane są w punktach rastra o współrzędnych całkowitych 2. kaŜdy węzeł reprezentuje unikalną wartość (powtórzenia elementów w ciągu są ignorowane) 3. temu samemu punktowi rastra moŜe być przyporządkowany 1 lub więcej węzłów drzewa 4. jeŜeli węzeł drzewa zajmuje pozycję (x, y) i posiada prawe poddrzewo, to korzeń tego poddrzewa ma współrzędne (x+1, y+1); analogicznie dla lewego poddrzewa, jeśli istnieje, współrzędne korzenia to (x-1, y+1) 5. pole powierzchni drzewa to pole minimalnego prostokąta o bokach zgodnych z osiami układu współrzędnych pokrywającego wszystkie węzły drzewa. Napisać program do przeprowadzenia tych obliczeń. Wejście Standardowe wejście zawiera pewną liczbę zestawów danych. KaŜdy zestaw składa się z wiersza z liczbą n (długość ciągu do zbadania) i następnego wiersza lub wierszy z danymi d1 .. dn oddzielonymi spacjami. Ostatni wiersz danych wejściowych zawiera 0. Długość ciągu n ∈ { 1..100000 }; liczby ciągu di∈ int. Wyjście Dla kaŜdego zestawu wejściowego wyprowadzany jest wiersz zawierający dwie liczby całkowite oddzielone spacją: a b (długości boków prostokąta pokrywającego w kierunku osi X i Y). Przykład Wejście 1 99 4 99 99 99 99 99 4 8 20 10 15 7 15 10 19 12 18 10 15 0 Wyjście 0 0 0 0 1 3 2 2