Zgłaszanie | Wszystkie zgłoszenia | Najlepsze | Lista |
FR_08_17 - Zjazd koordynatorów |
Co kilka lat, główna siedziba Kryptografii i Kryptoanalizy w Bajtocji organizuje zjazd koordynatorów opiekujących się pracownikami na ściśle przydzielonych obszarach. Głównemu koordynatorowi Jakubowi zależy, aby nikt nie był poszkodowany i chce zorganizować spotkanie w mieście, które będzie miastem centralnym, tzn. że najbardziej oddalony koordynator od tego miasta, będzie miał do niego drogę o długości d i jednocześnie nie będzie istniało takie miasto centralne, aby najbardziej oddalony koordynator znajdowałby się w odległości d - 1 od niego. Niestety zadanie okazało się bardzo skomplikowane, a więc zatrudniono najlepszego specjalistę w mieście (ciebie), żeby napisał program, który wyznaczy numery miast, które mogą być centralne. Zakładamy, że jeśli istnieje połączenie między dwoma miastami, to odległość między nimi wynosi 1.
Wejście
W pierwszym wierszu dwie liczby całkowite n i p określające odpowiednio liczbę miast oraz liczbę połączeń między nimi (3 < n < 1001, 2 < p < 5001).
W kolejnych p wierszach po dwie liczby a i b oznaczające, że istnieje bezpośrednie połączenie drogą dwukierunkową między miastami a i b (0 < a, b ≤ n, a ≠ b oraz nie istnieją dwa identyczne połączenia).
Następnie jedna liczba k określająca liczbę koordynatorów. Liczba ta mieści się w przedziale [1..50].
W ostatnim wierszu k miast, w których mieszkają koordynatorzy. W jednym mieście może mieszkać kilku koordynatorów.
Gwarantuje się, że z dowolnego miasta a można dotrzeć do dowolnego miasta b.
Wyjście
Numery miast, w których można zorganizować spotkanie koordynatorów uporządkowane rosnąco.
Przykład
Wejście: 9 9 1 2 2 3 2 5 3 4 5 6 5 7 6 7 7 8 8 9 3 4 6 8 Wyjście: 2 5
Dodane przez: | Marcin Kasprowicz |
Data dodania: | 2017-11-27 |
Limit czasu wykonania programu: | 1s |
Limit długości kodu źródłowego | 50000B |
Limit pamięci: | 1536MB |
Cluster: | Cube (Intel G860) |
Języki programowania: | All except: GOSU |