Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024
Problem description
Gdy zaczyna się obóz, życie wszystkich uczestników staje się prostsze. Jest tak również dla kadry, której piramida potrzeb staje się z chwilą rozpoczęcia obozu skompresowana do dwóch pozycji: pizzy oraz rozwoju uczestników.
Właśnie zaczyna się trzeci konkurs obozu – uczestnicy są zwarci i gotowi, a kadra lekko niewyspana przez przeciągające się do późnej nocy dyskusje o zadaniach i ich treściach.
Najpierw N-osobowa kadra zajmie się, rzecz jasna, rozwojem uczestników. Specjalistyczny system posiadany przez kadrę wykrył już dokładnie M przypadków dystrakcji wśród uczestników, które wymagają natychmiastowej reakcji kadry. Kadra chce przywołać do porządku oznaczonych przez system uczestników nie chodząc zbyt dużo i opracowała już algorytm przydziału poszczególnych kadrowiczów do poszczególnych przypadków dystrakcji wśród uczestników:
- Niech K będzie zbiorem kadrowiczów, a U zbiorem rozkojarzonych uczestników.
- Jeśli zbiór K jest pusty lub zbiór U jest pusty, to kończymy algorytm.
- Dla każdej pary typu (kadrowicz,rozkojarzony uczestnik) ze zbioru K × U obliczamy odległość między ich stałymi miejscami na sali i wybieramy parę (k,u) o najmniejszej odległości. Remisy rozstrzygamy na korzyść kadrowicza o mniejszym indeksie, a następnie na korzyść uczestnika o mniejszym indeksie.
- Kadrowiczowi k przypisujemy uczestnika u.
- Ze zbioru K usuwamy element k, a ze zbioru U usuwamy element u.
- Wracamy do punktu 2.
Następnie, po kilku godzinach konkursu, ta sama N-osobowa kadra, która zdążyła już wrócić na swoje stałe miejsca na sali, zajmie się pizzą. Kadra zamówiła L pudełek z pizzą, odebrała całe zamówienie, ale niestety niosący wszystkie L pudełek kadrowicz przewrócił się o rozłożone na sali kable i teraz L pudełek pizzy jest w różnych punktach sali. Każdy kadrowicz chciałby wziąć jedno pudełko pizzy i w tym celu kadra skorzysta z analogicznego algorytmu jak wcześniej:
- Niech K będzie zbiorem kadrowiczów, a P zbiorem pudełek pizzy.
- Jeśli zbiór K jest pusty lub zbiór P jest pusty, to kończymy algorytm.
- Dla każdej pary typu (kadrowicz,pudełko pizzy) ze zbioru K × P obliczamy odległość między ich miejscami na sali i wybieramy parę (k,p) o najmniejszej odległości. Remisy rozstrzygamy na korzyść kadrowicza o mniejszym indeksie, a następnie na korzyść pudełka pizzy o mniejszym indeksie.
- Kadrowiczowi k przypisujemy pudełko p.
- Ze zbioru K usuwamy element k, a ze zbioru P usuwamy element p.
- Wracamy do punktu 2.
Pomóż wypełnić kadrze dokumentację obozu i oblicz sumaryczny dystans przebyty tego dnia przez wszystkich kadrowiczów w celu upominania uczestników i zdobywania pizzy.
Napisz program, który wczyta pozycje kadrowiczów, rozkojarzonych uczestników i pudełek pizzy, przypisze każdemu kadrowiczowi po jednym rozkojarzonym uczestniku i pudełku pizzy zgodnie z podanymi algorytmami, wyznaczy sumaryczny dystans pomiędzy położeniami sparowanych obiektów i wypisze wynik na standardowe wyjście.
Wejście
W pierwszym wierszu wejścia znajdują się trzy dodatnie liczby całkowite N, M, L pooddzielane pojedynczymi odstępami i oznaczające kolejno liczność kadry, liczbę wykrytych rozkojarzonych uczestników oraz liczbę pudełek pizzy.
W następnych N wierszach znajdują się opisy miejsc zajmowanych przez kolejnych kadrowiczów: po dwie liczby całkowite Xk, i, Yk, i oddzielone pojedynczym odstępem.
W następnych M wierszach znajdują się opisy miejsc zajmowanych przez kolejnych rozkojarzonych uczestników: po dwie liczby całkowite Xu, i, Yu, i oddzielone pojedynczym odstępem.
W następnych L wierszach znajdują się opisy położeń pudełek pizzy: po dwie liczby całkowite Xp, i, Yp, i oddzielone pojedynczym odstępem.
Wyjście
W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna nieujemna liczba rzeczywista oznaczająca sumaryczną odległość jaką przebędą kadrowicze w wyniku opisanych procesów.
Odpowiedź zostanie zaakceptowana, jeśli błąd względny lub bezwzględny będzie mniejszy od 10−6.
Ograniczenia
1 ≤ N ≤ M, L ≤ 1 000, |X⋅,i|, |Y⋅,i| ≤ 10 000.
Podzadania
Podzadanie | Warunki | Punkty |
---|---|---|
1 | N, M, L ≤ 100 | 20 |
2 | Y⋅,i = 0 | 20 |
3 | N, M, L ≤ 700 | 20 |
4 | brak dodatkowych ograniczeń | 40 |
Przykład
Wejście | Wyjście | Wyjaśnienie |
|
|
Kadrowicz z pozycji (1,0) upomni uczestnika na pozycji (0,0) (odległość 1), natomiast kadrowicz z pozycji (2,0) upomni uczestnika na pozycji (3,0) (odległość 1). Kadrowicz z pozycji (1,0) weźmie pudełko pizzy z pozycji (1,1) (odległość 1), natomiast kadrowicz z pozycji (2,0) zadowoli się pudełkiem pizzy z pozycji (2,1) (odległość 1). Sumaryczna odległość to 1 + 1 + 1 + 1 = 4. |