Zoznam úloh

7. Organizácia projektov

Kolo už skončilo. Môžeš si pozrieť vzorové riešenie.

Syseľ pracuje ako manažér softvérových projektov. Práve teraz sa snaží vymyslieť, ako čo najoptimálnejšie priradiť programátorov ku dvom projektom. O každom z programátorov vie, ako je zbehlý v technológiach potrebných na ten-ktorý projekt. Pracuje s obmedzeným rozpočtom, preto si na každý z projektov môže dovoliť iba určitý počet programátorov, zvyšok žiaľ bude musieť prepustiť. Syseľ by chcel nájsť čo najlepšie priradenie programátorov ku projektom. Pomôžete mu s týmto problémom?

Úloha

Syseľ má $n$ programátorov. Z jeho výpočtov mu vyšlo, že na projekte A môže pracovať $x$ programátorov a na projekte B môže pracovať $y$ programátorov. Zároveň pre každého programátora vie, aké veľké skúsenosti má s technológiami na projekte A a na projekte B. Hodnoty skúseností pre $i$-teho programátora si označíme $a_i$ a $b_i$. Skúsenosť tímu, ktorý pracuje na projekte A je súčet hodnôt $a_i$ všetkých programátorov pracujúcich na tomto projekte. Analogicky, skúsenosť tímu pracujúceho na projekte B je súčet hodnôt $b_i$ všetkých programátorov, ktorí na ňom pracujú. Sysľovým cieľom je maximalizovať súčet skúseností oboch tímov, pričom jeden programátor môže pracovať iba na jednom projekte naraz. Povedané formálne, snažíme sa maximalizovať: $$\sum_{i \in P_A} a_i + \sum_{i \in P_B} b_i \text{,}$$ pričom $P_A$ je množina programátorov pracujúcich na projekte A a $P_B$ je množina programátorov na projekte B.

Formát vstupu

Na prvom riadku sa nachádzajú tri čísla $n$, $x$, $y$ – celkový počet programátorov a počty programátorov, ktorí môžu pracovať na projekte A a na projekte B. Pritom platí: $x + y \leq n$, $2 \leq n \leq 10^5$ a $x, y \geq 1$.

Druhý riadok obsahuje čísla $a_1, \dots, a_n$ ($1 \leq a_i \leq 10^9$), kde $a_i$ je skúsenosť $i$-teho programátora s technológiami používanými na projekte A.

Tretí riadok obsahuje čísla $b_1, \dots, b_n$ ($1 \leq b_i \leq 10^9$), kde $b_i$ je skúsenosť $i$-teho programátora s technológiami na projekte B.

Formát výstupu

Na výstupe sa nachádza jedno celé číslo – maximálny možný súčet skúseností oboch tímov.

Hodnotenie a obmedzenia

Pre jednotlivé sady testov navyše platia nasledovné obmedzenia. Za vyriešenie každej sady získate 2 body.

číslo sady obmezenie na $a_i$, $b_i$ obmedzenie na $n$
1 $1 \leq a_i, b_i \leq 1000$ $2 \leq n \leq 10$
2 $1 \leq a_i, b_i \leq 10^9$ $2 \leq n \leq 10^2$
3 $1 \leq a_i, b_i \leq 10^9$ $2 \leq n \leq 10^3$
4 $1 \leq a_i, b_i \leq 10^9$ $2 \leq n \leq 10^5$

Príklady

Input:

5 2 2
1 3 4 5 2
5 3 2 1 4

Output:

18

Syseľ priradí tretieho a štvrtého programátora na projekt A. Prvého a piateho priradí na projekt B. Druhého prepustí. Takto získa tím A s celkovou skúsenosťou $4+5 = 9$ a tím B s celkovou skúsenosťou $5+4 = 9$

Input:

4 2 2
10 8 8 3
10 7 9 4

Output:

31

Skúsenosť tímu A je $10+8 = 18$ a tímu B je $9+4 = 13$

Input:

5 3 1
5 2 5 1 7
6 3 1 6 3

Output:

23
Pre odovzdávanie sa musíš prihlásiť.
Trojsten

Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.

Kontakt
Ďalšie projekty