Wstęp do zadań

Ten akapit musisz przeczytać …

Uwaga! Ponieważ proces oceniania przebiega automatycznie, więc jakiekolwiek odchylenia od przyjętych konwencji (takie jak zmiana nazwy programu lub przestawienie dwóch liczb w wyniku) mogą spowodować, że poprawnie zaimplementowany algorytm nie przejdzie żadnego testu. Dlatego proszę bezwzględnie przestrzegać ustalonych formatów danych i nazw plików. Program nie może prowadzić żadnej interakcji z użytkownikiem (np. czekanie na naciśnięcie klawisza), gdyż automatyczny program testujący po prostu stwierdzi przekroczenie limitu czasu.

Organizacja i nazewnictwo

Wszystkie zadania są podzielone na dwie grupy serii: domową (A, B, C, D, ...) oraz wykładową (WA, WB, WC, …). W obrębie każdej serii znajduje się z reguły 10 zadań (co jednak może się w każdej chwili zmienić). Zadania domowe są pogrupowane według przerabianych tematów, natomiast wykładowe są pogrupowane wg. wykładów na których się pojawiły lub z którymi są związane. Innych różnic nie ma, więc oba typy zadań są przewidziane do rozwiązania w domu.

Pełna nazwa każdego zadania składa się z identyfikatora serii oraz numeru wenątrz niej. Na przykład trzecie zadanie z serii A ma nazwę 'A3'.

Rozwiązania

Rozwiązanie zadania polega na znalezieniu jak najszybszego algorytmu i napisaniu realizującego go programu. Zarówno krótkie opisy algorytmów (zawierające ocenę złożoności czasowej O(.)), jak i programy należy przesyłać pocztą na adres mb@fanthom.math.put.poznan.pl z wpisanym w pole "Subject" przyliterowym akronimem "ACM". Do listu należy dołączyć kod źródłowy programu (jako Attachment).

Nazwy plików

Jeśli nazwę zadania oznaczymy przez X, to program je rozwiący powinien nazywać się X.PAS, X.C lub X.CPP (w zależności od użytego języka programowania). Powinien czerpać dane wejściowe z pliku X.IN znajdującego się w bieżącym katalogu, a dane wyjściowe do pliku X.OUT (również w kalatogu aktualnym). Jeśli na przykład rozwiązaliśmy zadanie A3 w Pascalu, to wysyłamy program A3.PAS, który pobiera dane z A3.IN, a zapisuje wyniki do A3.OUT.

Format plików

Każde zadanie ma podany skrótowy (aczkolwiek wg. mnie dokładny) opis wejścia i wyjścia. Pliki te zawsze mają postać ciągu danych elementarnych (takich jak liczby lub słowa). Te dane elementarne mogą być odzielone znakami spacji, tabulacji i nowej linii lub dowolną niepustą i kombinacją. Zarówno program sprawdzający, jak i program użytkownika powinny się do tego dostosować. Jeśli w opisie wejścia/wyjścia pojawiają się nawiasy, to tekst wewnątrz nich jest po prostu przykładowym wejściem/wyjściem.

Proces oceniania

Podczas procesu oceniania programy będą kompilowane kompilatorami Borland C++ 3.1 oraz Turbo Pascal 7.0 do trybu rzeczywistego pod DOS. Będą używane kompilatory liniowe z następującymi parametrami:

TPC X.PAS
BCC -mc X.C (model pamięci Compact)
BCC -mc X.CPP (model pamięci Compact)