Poloměr komponent grafu

V této úloze uvažujeme prosté neorientované grafy bez smyček. Pro přehlednost nejprve připomeneme standardní definice teorie grafů. Úloha
Na vstupu je dán graf, je třeba určit počet jeho komponent a maximální hodnotu poloměru všech jeho komponent.

Vstup

Na vstupu jsou tři kladná celá čísla N1, N2 a D zapsaná na jednom řádku a oddělená navzájem vždy jednou mezerou. Zkoumaný graf je určen takto:
Uzly grafu jsou všechna přirozená čísla z množiny {N1, N1+1, N1+2, ..., N2}. Dva uzly a, b jsou spojeny hranou právě tehdy, když
NSD(a + b + |ab| + 3, a × b + |ab| + 2) ≥ D.
Platí N2 ≤ 109, 0 ≤ N2N1 ≤ 1000, 1 ≤ D ≤ 104.

Výstup

Na výstupu jsou dvě čísla v jednom řádku oddělená mezerou. První určuje počet komponent zadaného grafu, druhé určuje maximální poloměr všech komponent grafu (pokud je graf souvislý, je druhým číslem poloměr celého grafu).

Příklad 1

Vstup:
10 20 3
Výstup:
5 2
     


Obr. 1.
Graf zadaný v příkladu 1, středy největší komponenty jsou 11, 15, 18.

Příklad 2

Vstup:
10 20 1
Výstup:
1 1
Graf zadaný v příkladu 2 je úplný graf s 11 uzly.

Příklad 2

Vstup:
111100001 111100999 26
Výstup:
163 5

Veřejná data

Veřejná data k úloze jsou k dispozici. Veřejná data jsou uložena také v odevzdávacím systému a při každém odevzdání/spuštění úlohy dostává řešitel kompletní výstup na stdout a stderr ze svého programu pro každý soubor veřejných dat.
Veřejná data