Aceasta este problema arme (1063)
în care s-au mărit dimensiunile vectorilor. Încercați să rezolvați mai întâi problema originală, apoi pe aceasta.
Vasile joacă (din nou!) jocul său preferat cu împuşcături. Personajul său are la brâu N
arme, aşezate în N
huse speciale, numerotate de la 1
la N
. Arma din husa i
are puterea pb
i
(1≤i≤N
). În camera armelor a găsit M
arme, aşezate pe perete, în M
locaţii, numerotate de la 1
la M
. Pentru fiecare armă j
(1≤j≤M
) este cunoscută puterea sa pc
j
. Vasile poate înlocui arme pe care le are la brâu cu arme aflate pe perete în camera armelor. La o înlocuire el ia arma de pe perete din locaţia j
(1≤j≤M
) şi o pune la brâu în husa i
(1≤i≤N
), iar arma din husa i
o pune pe perete în locaţia j
.
Cerinţă
Scrieţi un program care să determine suma maximă a puterilor armelor pe care le va avea la brâu Vasile după efectuarea înlocuirilor.
Date de intrare
Datele se citesc de la tastatură. De pe prima linie se citesc numerele naturale N M
, reprezentând numărul de arme pe care le are la brâu, respectiv numărul de arme aflate în camera armelor. Pe a doua linie se află N
numere naturale pb
1
pb
2
… pb
N
reprezentând în ordine puterile armelor pe care Vasile le are la brâu. Pe a treia linie se află M
numere naturale pc
1
pc
2
… pc
M
reprezentând în ordine puterile armelor aflate în camera armelor. Numerele scrise pe aceeaşi linie sunt separate prin spaţiu.
Date de ieșire
Se va afișa la ecran suma maximă a puterilor armelor de la brâul lui Vasile, după efectuarea înlocuirilor.
Restricții și precizări
10.000 ≤ N, M ≤ 50.000
- Puterile armelor sunt numere naturale
≤1.000.000.000
.
Exemplu:
Intrare
3 2 3 1 7 4 5
Ieșire
16