Prihlásenie Registrácia  

E - Pluky

Časový limit: 2s, Pamäťový limit: 64MiB

Programovacie jazyky: Pascal, C, C++, Java, C++0x, Python 3

Počet bodov: 1

[ Pošli riešenie ] [ Tvoje riešenia ] [ Správne riešenia ] [ Vzorové riešenie ]

Na monitore sa práve schyľuje k veľkej bitke medzi armádou hráča a armádou jeho počítača. Sily sú vyrovnané, obe armády obsahujú rovnaký počet plukov, pričom ale jednotlivé pluky môžu obsahovať rôzne počty vojakov. Na začiatku bitky sa pluky oboch armád zoradia do dvoch radov tak, že oproti každému hráčovmu pluku stojí práve jeden pluk patriaci počítaču. Potom sa začne samotný boj. Pluky stojace oproti sebe na seba zaútočia. A keďže v počte je sila, zvíťazí ten z nich, ktorý má viac vojakov. Ak náhodou majú súperiace pluky rovnaký počet vojakov, vyhráva pluk patriaci počítaču.

Hráčova armáda má veľmi schopných špiónov, ktorí pred bitkou zistia, koľko vojakov má nepriateľ v ktorom pluku a ako sú jeho pluky rozmiestnené. Vašou úlohou je rozmiestniť na základe týchto informácií hráčove pluky tak, aby čo najviac z nich svoj súboj vyhralo.

Úloha

Napíš program, ktorý Ti poradí, ako najlepšie rozmiestniť pluky, ktoré máš k dispozícii. Na vstupe dostaneš počet plukov N v každej armáde a počty vojakov v každom z 2N plukov na bojisku. Ako výstup programu nám stačí jediné celé číslo–najväčší počet hráčových plukov, ktoré vyhrajú svoj súboj pri nejakom rozostavení.

Vstup

Prvý riadok vstupu obsahuje jedno celé číslo N (1 ≤ N ≤ 10 000) – počet plukov v každej z armád.

V druhom riadku je medzerami oddelených N celých čísel A1, ..., AN (1 ≤ Ai ≤ 100 000 000) – počty vojakov v hráčových plukoch. V treťom riadku je medzerami oddelených N celých čísel B1, ..., BN (1 ≤ Bi ≤ 100 000 000) – počty vojakov v plukoch patriacich počítaču.

Výstup

Jediný riadok výstupu má obsahovať jediné celé číslo – najväčší počet hráčových plukov, ktoré môžu naraz vyhrať svoj súboj.

Príklad 1

Vstup:

5
7 12 1 7 47
7 12 1 7 47

Výstup:

3

Vysvetlenie:

Ak to hráč spraví dobre, vyhrajú jeho pluky veľkosti 47, 12 a jeden z plukov veľkosti 7.

Príklad 2

Vstup:

5
1 3 5 7 9
2 4 6 8 10

Výstup:

4

Vysvetlenie:

Obetujeme hráčov najmenší pluk, pošleme ho proti pluku veľkosti 10. Ostatné pluky vieme potom rozmiestniť tak, aby vyhrali.

Príklad prebraný z MO-P-1-1, 2000