Dolnośląskie Zawody w Programowaniu Zespołowym (XIV)

Data ostatniej modyfikacji:
2017-05-18
Autor: 
Paweł Świątkowski
student informatyki i filologii fińskiej UAM w Poznaniu
Organizator: 

Instytut Informatyki Stosowanej Politechniki Wrocławskiej
Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej
Skwer Idaszewskiego (plac Grunwaldzki), budynek D-2, p. 201/7

strona domowa zawodów

 

Terminy: 

W 2014 roku zawody zostały zawieszone.

 

Te zawody są najprostszym i najlepszym sposobem dla licealisty na poznanie jak wygląda, smakuje i pachnie informatyczny konkurs zespołowy (jak choćby słynny konkurs dla studentów ACM International Collegiate Programming Contest). Wielu najlepszych dolnośląskich studentów informatyki tu właśnie stawiło swoje pierwsze kroki. O ich sukcesach piszemy tutaj (2010) i tutaj (2016).

 

Historia: 

Pierwsze Dolnośląskie Zawody w Programowaniu Zespołowym odbyły się w roku 1998 i od tego czasu trwale wpisały się w coroczny harmonogram konkursów informatycznych we Wrocławiu.

 

Skrót regulaminu: 
  • W konkursie startują zespoły trzyosobowe zgłaszane osobiście lub listownie. Zgłoszenie powinno zawierać skład zespołu (imię, nazwisko, rok studiów, wydział, uczelnia lub klasa, profil, szkoła) ze wskazaniem kapitana, dane nauczyciela oraz adres kontaktowy (adres pocztowy, telefon, e-mail), potwierdzone pieczątką dziekanatu lub szkoły.
  • Każdy zespół ma do dyspozycji jeden komputer. Może korzystać z książek i notatek, które przyniósł z sobą. Zabronione jest korzystanie z internetu, kalkulatorów, materiałów w formie elektronicznej, laptopów oraz kontaktowanie się z osobami trzecimi.
  • Konkurs trwa 3,5 godziny. Oceny za programy nadesłane przez sieć wewnętrzną do jury są podawane na bieżąco. Oceniana jest jedynie funkcjonalność programu, nie styl kodowania. W przypadku odrzucenia rozwiązania (np. za przekroczenie dozwolonego czasu wykonania) zespół ma prawo do nadesłania kolejnej wersji.
  • Przez pierwsze 150 minut zawodów aktualna tabela wyników poszczególnych ekip jest dostępna publicznie.
  • Zespoły otrzymują co najmniej 4 (uczniowie) lub 6 (studenci) zadań programistycznych, których rozwiązania należy przedstawić w języku Pascal lub C/C++.
  • Drużyny są szeregowane na podstawie liczby poprawnie rozwiązanych zadań. W przypadku remisu o kolejności decyduje łączny czas rozwiązywania zadań powiększony o karę 20 minut za każde przedstawienie błędnego rozwiązania.

 

Przykładowe zadania: 

Rzeka

Wzdłuż rzeki Soary umieszczone jest n zakładów przemysłowych, w kierunku od źródła do ujścia. Zakład i (dla i = 1, ..., n) jest odległy od źródła rzeki o di km oraz ma własny scenariusz odprowadzania zanieczyszczeń dany w formie ciągu par (tj, zj), gdzie j = 1, ..., mi . Wiadomo, że zj jest poziomem zanieczyszczeń począwszy od chwili tj emitowanych do rzeki w punkcie, w którym umieszczony jest zakład, a mi jest liczbą par określonych dla zakładu i. Czas jest obiektywny, wspólny, mierzony w godzinach. Rzeka płynie z prędkością v km/h. W dole rzeki, w odległości D km od źródła zlokalizowana jest stacja monitorująca. Stacja podnosi alarm, gdy poziom zanieczyszczeń obserwowany przy stacji przekroczy wartość progową P. Wyznacz przedziały czasowe, w których stacja podniesie alarm. Przedziałów tych powinna być minimalna liczba.

Napisz program, który:

  • czyta dane ze standardowego wejścia,
  • wyznacza opisane przedziały czasowe,
  • zapisuje wynik na standardowym wyjściu.

Wejście
Pierwsza linia zawiera liczbę n zakładów. Kolejno występuje n linii, z których każda zawiera liczby dimi oraz mi par (tj, zj), gdzie j = 1, ..., mi. Ostatnia linia zawiera liczby v, D, P.

Wyjście
Liczba przedziałów czasowych, w których stacja monitorująca podniesie alarm, po której pojawi się ciąg przedziałów czasowych (początek_alarmu, koniec_alarmu).

Wiertarka taty

Mały Jasio dobrał się do narzędzi taty. Znalazł tam wiertarkę ręczną oraz komplet wierteł o różnej średnicy. Jasio zakładał losowo wiertła i wiercił otwory w blacie stołu (antyk, Ludwik XIII). Otworów powstało na tyle dużo, że niektóre z nich połączyły się, tworząc większe obszary, dziury, które już nie były okrągłe. Ile takich dziur nawiercił Jasio?

Napisz programu, który:

  • wczyta dane ze standardowego wejścia,
  • obliczy liczbę dziur,
  • zapisze wynik na standardowym wyjściu.

Wejście
W pierwszym wierszu znajduje się liczba całkowita n, 1 ? n ? 10000, będąca liczbą otworów. W następnych n wierszach zapisane są współrzędne środków otworów oraz ich średnice oddzielone spacjami. Są to liczby naturalne (ewentualnie zero dla współrzędnych) nie większe niż 10000. Na przykład wiersz z liczbami 2 16 7 oznacza otwór o średnicy 7 i środku położonym w punkcie (2,16).

Wyjście
Dokładnie jedna linia zawierająca liczbę całkowitą określającą liczbę dziur.

 

Powrót na górę strony