Wydział Matematyki i Informatyki
Uniwersytetu Mikołaja Kopernika
ul. Chopina 12/18, 87-100 Toruń
tel. 56 6113410, faks 56 6112987
e-mail: rki@mat.umk.pl
W 2012 roku zawody zostały zawieszone.
Uczestnictwo w tym konkursie związane jest z udziałem w kursie pn. Regionalne Koło Informatyczne prowadzonym przez Wydział Matematyki i Informatyki Uniwersytetu Mikołaja Kopernika w Toruniu. Zajęcia koła są prowadzone on-line i dostępne dla wszystkich licealistów oraz gimnazjalistów. Są poświęcone nauce programowania (w językach C++ i Java) i poszerzeniu wiedzy z zakresu algorytmów. Co tydzień pojawia się nowa lekcja z zadaniami, za których rozwiązania uczniowie zdobywają punkty, wg. których tworzony jest ranking w każdej kategorii. Najlepsi uczestnicy kursu są zapraszani na warsztaty prowadzone na Wydziale Matematyki i Informatyki UMK w Toruniu.
Zajęcia koła podzielone są na dwa cykle i realizowane przez internet z wykorzystaniem platformy zdalnego nauczania.
- I - Nauka programowania - 15 zajęć (dla GIM i LO)
- II - Nauka algorytmów - 15 zajęć (dla LO)
Udział w zajęciach jest otwarty dla wszystkich uczniów. W tym celu należy dokonać rejestracji w systemie zdalnego nauczania podając imię, nazwisko, klasę, szkołę oraz nazwisko nauczyciela informatyki. Na podobnych zasadach z serwisu mogą korzystać nauczyciele. Program zajęć jest dostosowany do programu nauczania informatyki, zgodny z treściami obowiązującymi na maturze z informatyki i Olimpiadzie Informatycznej.
Poprzednikiem Ligi był konkurs, który w latach 1990-2000 konkurs odbywał się pod nazwą "Konkurs Informatyczny dla Uczniów Szkół Ponadpodstawowych", a po reformie systemu edukacji w latach 2001-2008 zmienił nazwę na Konkurs Informatyczny dla Uczniów Szkół Ponadgimnazjalnych i był najstarszym konkursem informatycznym w Polsce. W roku 2009/10 konkurs przekształcono w Regionalne Koło Informatyczne dla uczniów szkół ponadgimnazjalnych, a od roku 2010/11 objęło ono również uczniów gimnazjów i rozpoczęło prowadzenie Ligi Programistycznej.
- Udział w RKI jest otwarty i bezpłatny.
- Co tydzień, w poniedziałek udostępniana jest nowa lekcja składająca się
z opisu, przykładowego kody w języku C i Java oraz pytań
sprawdzających. Do każdej lekcji są dołączone proste zadania do
rozwiązania sprawdzające w praktyce nabytą wiedzę. - Rozwiązania (w
postaci napisanego kodu źródłowego programu) uczniowie przesyłają za pomocą specjalnego systemu, który automatycznie sprawdza poprawność rozwiązania, dokonuje kompilacji, uruchamia i
sprawdza działanie programu. - Rozwiązania można nadsyłać w dowolnym czasie przez 9 dni (od
poniedziałku do kolejnej środy). Po tym czasie nadsyłanie rozwiązań
nadal jest możliwe, ale uzyskane punkty nie liczą się w
klasyfikacji. - Za poprawne rozwiązanie zadań uczeń otrzymuje punkty zależne od stopnia trudności zadania. Są one podstawą rankingu
Ligi Programistycznej prowadzonego osobno dla obu kursów. Ranking gimnazjalistów ustanawiany jest tylko w obrębie kursu "Nauka programowania". - Uczniowie,
którzy podczas kusru zdobędą najwięcej punktów zostaną zaproszeni na warsztaty
prowadzone na Wydziale Matematyki i Informatyki UMK w Toruniu.
1. Środek symetrii
Zbiór A punktów na prostej posiada środek symetrii, jeżeli istnieje taka liczba s, że dla każdego punktu p ze zbioru A można znaleźć punkt q należący do zbioru A, taki że p - s = s - q. Punkt s nie musi należeć do zbioru A.
Dane wejściowe wprowadzane są za pomocą standardowego wejścia i składają się z pewnej liczby linii, z których każda zawiera jedną liczbę całkowitą n. Ostatnia linia zawiera liczbę 0 i oznacza koniec wprowadzania danych. Jako wynik należy podać środek symetrii zbioru A (jeżeli istnieje) lub wypisać słowo BRAK (jeżeli nie istnieje). Środek symetrii należy podać w postaci liczby rzeczywistej z jednym miejscem dziesiętnym (po kropce).
Przykład:
DANE
3
-2
4
-3
0
WYNIK
0.5
2. Połączenie komputerów
Sieć komputerowa składa się z pewnej liczby serwerów połączonych za pomocą połączeń dwukierunkowych. Dane pomiędzy serwerami mogą być wymieniane bezpośrednio lub poprzez inne serwery, o ile takie połączenie jest możliwe. Znając liczbę serwerów N oraz połączenia między nimi, znaleźć połączenia krytyczne, to znaczy takie, które stanowią jedyną drogę wymiany danych pomiędzy dwoma wybranymi serwerami znajdującymi się w sieci.
Dane wejściowe wprowadzane są za pomocą pojedynczego pola tekstowego i składają się z szeregu linii w których znajdują się:
- w pierwszej linii jedna liczba naturalna oznaczająca liczbę serwerów N,
- w kolejnych N liniach znajdują się liczby rozdzielone spacją oznaczające kolejno: numer serwera, liczbę połączeń z innymi serwerami mi, oraz mi numerów serwerów z którymi dany serwer jest połączony.
Zdefiniowana w zadaniu sieć połączeń nie musi gwarantować połączenia pomiędzy dwoma dowolnymi serwerami. Połączenia krytyczne wybieramy spośród zdefiniowanych połączeń. Połączenia są dwukierunkowe, przy czym w zbiorze wejściowym wystarczy zdefiniować połączenie raz (na przykład dla serwera i). Połączenie może być zdefiniowane dwukrotnie - dla serwera i i dla serwera j, przy czym jest traktowane jako jedno połączenie.
Przykład:
DANE
8
0 1 1
1 3 2 0 3
2 2 1 3
3 3 1 2 4
4 1 3
7 1 6
6 1 7
5 0
WYNIK
3 krytyczne połączenia:
0 - 1
3 - 4
6 - 7
3. Internetowe
Napisz aplikację WWW pozwalającą na wyznaczenie kąta płaskiego (w stopniach) między dwoma odcinkami. Kąt płaski między odcinkami AB i CD definiujemy jako kąt utworzony przez rzuty odcinków AB i CD na płaszczyznę prostopadłą do odcinka BC.
Dane wprowadzane w formularzu to współrzędne 4 punktów
xA, yA, zA,
xB, yB, zB,
xC, yC, zC,
xD, yD, zD.