Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2023

Old page Regulations Schedule RODO info Ranking

Problem description


Instynkt kadry
(instynkt-kadry)
Limit pamięci: 64 MB
Limit czasu: 2.00 s

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:

  1. Niech K będzie zbiorem kadrowiczów, a U zbiorem rozkojarzonych uczestników.
  2. Jeśli zbiór K jest pusty lub zbiór U jest pusty, to kończymy algorytm.
  3. 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.
  4. Kadrowiczowi k przypisujemy uczestnika u.
  5. Ze zbioru K usuwamy element k, a ze zbioru U usuwamy element u.
  6. 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:

  1. Niech K będzie zbiorem kadrowiczów, a P zbiorem pudełek pizzy.
  2. Jeśli zbiór K jest pusty lub zbiór P jest pusty, to kończymy algorytm.
  3. 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.
  4. Kadrowiczowi k przypisujemy pudełko p.
  5. Ze zbioru K usuwamy element k, a ze zbioru P usuwamy element p.
  6. 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
2 2 2
1 0
2 0
0 0
3 0
1 1
2 1
4.00000000

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.