Prihlásenie Registrácia  

M - Mosty

Č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 ]

Cez krajinu Kiwistan tečie masívna rieka. Pozdĺž nej sú na oboch brehoch mestá a každé jedno má na opačnom brehu práve jedno sesterské mesto (je to vzájomná relácia).
V rámci čerpania eurofondov sa rozhodli, že budú budovať medzi sesterskými mestami mosty. Po krátkom technicko-úradníckom prieskume však zistili, že nedokážu postaviť križujúce sa mosty a teda sa asi nebude dať postaviť most medzi každou dvojicou sesterských miest, tak by chceli postaviť najviac, ako sa dá.
Pre uchovanie anonymity sú identity miest zamaskované, máme len údaje typu "Mesto na ľavom brehu A. kilometra a mesto na pravom brehu B. kilometra sú sesterské [A-B]".
Potom napríklad mosty 5-10 a 6-9 by sa križovali a nie je možné ich postaviť súčasne.

Úloha

Pre dané dvojice sesterských miest zistite, koľko najviac mostov je možné postaviť.

Vstup

V prvom riadku vstupu sa nachádza počet testovacích sád S

Každá sada začína riadkom s celým číslom M, počet dvojíc sesterských miest, teda potenciálnych mostov

Nasleduje M riadkov s dvojicou čísel A, B, značiace, že mesto na A-tom kilometri ľavého brehu a mesto na B-tom kilometri pravého brehu chcú most
Môžete predpokladať, že žiadne 2 mestá na tom istom brehu nemajú rovnakú súradnicu

1 ≤ S ≤ 50
1 ≤ M ≤ 1000
1 ≤ A,B ≤ 1 000 000

Výstup

Výstupom programu je pre každú sadu najväčší počet súčasne postaviteľných mostov.

Príklad

Vstup:

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

Výstup:

5
4