Spoty informatyczne

Data ostatniej modyfikacji:
2015-08-19
Autor: 
Paweł Światkowski
student informatyki na UAM w Poznaniu
Organizator: 

Wrocławski Portal Informatyczny
http://informatyka.wroc.pl

strona konkursów: http://spot.informatyka.wroc.pl

 

Terminy: 

Jesienią 2011 roku zawody zostały zawieszone.

 

Konkursy z cyklu "Spot" odbywają się kilka razy w roku (SpringSpot - wiosną, HotSpot - latem, FallSpot - jesienią i CoolSpot - zimą). Są prowadzone przez nasz bliźniaczy Wrocławski Portal Informatyczny. W zamyśle organizatorów mają to być typowe konkursy programistyczne, gdzie do rozwiązania w każdej z trzech rund jest kilka zadań w języku C lub C++ o rosnącym stopniu trudności. Skierowany jest do gimnazjalistów i licealistów, głównie tych początkujących i średnio zaawansowanych.

Tym, co wyróżnia Spoty od innych konkursów programistycznych, jest specyficzna atmosfera. Zwycięzcą zostaje oczywiście ten, kto najlepiej rozwiąże podane 10 zadań, ale organizatorzy przyznają też wyróżnienia i nagrody-upominki za rozwiązania najciekawsze, najkrótsze, najbardziej oryginalne, najszybciej przysłane i wszelkie, które w czymś się wyróżniają.

Nagrodami są m.in. odtwarzacze MP4, dyski przenośne, muszki i klawiatury bezprzewodowe, zestawy głośników, pendrive'y i koszulki konkursowe.

 

Skrót regulaminu: 
  • Udział w konkursie może wziąć każdy uczeń gimnazjum lub szkoły ponadgimnazjalnej z naszego kraju.
  • Zdobywcy pierwszych dziesięciu miejsc otrzymują nagrody rzeczowe.
  • Rozwiązaniem zadania jest jednoplikowy program (kod źródłowy) dla problemu z treści zadania. Program musi spełniać ograniczenia podane w treści zadania, a rozmiar jego kodu źródłowego nie może przekraczać 100 kB.
  • Dopuszczalne są jedynie programy zapisane w językach C oraz C++.
  • Jedynymi kryteriami oceny rozwiązania są jego poprawność i czas działania na danych testowych.
  • O pozycji na liście rankingowej decyduje suma punktów uzyskanych za rozwiązania zadań, a w wypadku jednakowej liczby punktów – suma czasów rozwiązania zadań.

  

Przykładowe zadania: 

Kaktus

Prędzej mi kaktus na dłoni wyrośnie, niż podejmę się takiego zadania! - zawołał Witek. Chłopcy zajęli się analizą grafów (nieskierowanych). Witkowi w przypadł w udziale obowiązek liczenia, ile różnych cykli (prostych, czyli bez powtarzających się wierzchołków) znajduje się w zadanym grafie. Witek uważa to zadanie za zdecydowanie zbyt pracochłonne i stąd jego okrzyk protestu. Po pewnym czasie chłopcom udało się dojść do porozumienia - zadanie Witka pozostanie wprawdzie niezmienione, ale chłopcy ograniczą się do badania grafów, w których policzyć cykle powinno być stosunkowo łatwo, a dokładniej do takich grafów, w których dowolne dwa różne cykle mają co najwyżej jeden wspólny wierzchołek. Pomóż Witkowi w wykonywaniu jego pracy. Jeżeli okaże się, że zadany graf nie spełnia założenia, odmów wykonania zadania.

Wejście
W pierwszej linii znajduje się jedna liczba naturalna L, oznaczająca liczbę zestawów danych. Potem następuje opis kolejnych zestawów. W pierwszej linii opisu znajdują się dwie liczby naturalne N i M (1<= N, M <= 1000000), oznaczające - odpowiednio - liczbę wierzchołków i liczbę krawędzi grafu. Następnie podawany jest opis krawędzi grafu w M kolejnych liniach. Każda z nich zawiera dwie różne liczby naturalne A i B oznaczające wierzchołki, które łączy dana krawędź (numerowane od 0). Krawędzie są parami różne.

Wyjście
Dla każdego zestawu w osobnej linii należy wypisać liczbę cykli w grafie, jeśli ten spełnia opisane w treści założenie, lub quot;NIE" w przeciwnym wypadku.

 

Puzzle

Po skończeniu codziennego grabienia liści, pan Wincenty postanowił zrelaksować się przy swojej ulubionej rozrywce - układaniu puzzli. Znalazł w szafce biurka stary zestaw i zabrał się do układania. Po chwili wiedział już, który kawałek pasuje do którego oraz znał pierwsze dwa elementy pierwszego rzędu puzzli. Znał też oczywiście rozmiary obrazka. Czy ta wiedza wystarczy do jednoznacznego odtworzenia całej układanki?

Wejście
W pierwszej linii znajdują się dwie liczby naturalne N i M  (3 <= N <= M, N*M <= 1000), N oznacza liczbę wierszy, a M - liczbę kolumn układanki. Następnie w kolejnych N*M liniach znajdują się opisy kolejnych kawałków układanki (od kawałka nr 1 do kawałka nr N*M). Każdy opis składa się dokładnie z czterech liczb całkowitych, nieujemnych - numerów kawałków, do których dany kawałek pasuje. Jeśli dany element leży na brzegu obrazka, to zamiast numeru odpowiedniego sąsiada podawana jest liczba 0. W ostatniej linii znajdują się dwie liczby naturalne A i B - numery, kolejno, dwóch pierwszych elementów pierwszego rzędu układanki.

Wyjście
Na wyjściu należy wpisać "NIE", w przypadku gdy dla podanych danych nie da się jednoznacznie określić rozwiązania układanki. W przeciwnym przypadku należy wypisać ułożoną układankę, w N kolejnych liniach, z których każda ma zawierać oddzielone spacjami M numerów kolejnych elementów w danym rzędzie.

 

Powrót na górę strony