Je to tu – obdobie extrémnej nákupovej mánie. Zľavy na zľavy, čierne piatky, kybernetické pondelky, mikulášske akcie… Škoda len, že sa nám tento rok minuli aj rozprávky k zadaniam, vypredali sa dokonca ešte rýchlejšie ako RAMky v zľave. Budete si teda musieť vystačiť len s holou úlohou:
Máme zadaný neorientovaný graf $G$, kde každý vrchol má stupeň1 najviac $d \leq 16$. Klika v grafe je taká podmnožina vrcholov, v ktorej je každá dvojica vrcholov spojená. Nájdite počet klík veľkosti $k$ v grafe $G$. Dve kliky počítame ako rôzne ak sa líšia v aspoň jednom vrchole.
V prvom riadku vstupu sú čísla $n, m, k$ udávajúce počet vrcholov grafu $G$, počet hrán grafu $G$, a veľkosť klík, ktoré chceme hľadať.
Nasleduje $m$ riadkov, na každom sú dve čísla $a_i, b_i$ ($0 \leq a_i, b_i < n$) popisujúce hrany grafu. Je garantované, že graf neobsahuje slučky a násobné hrany.
Označme $d$ maximálny stupeň vrchola v grafe $G$. V jednotlivých sadách platia nasledujúce obmedzenia:
| Sada | 1 | 2 | 3 | 4 |
|---|---|---|---|---|
| $1 \leq n,k \leq$ | $30$ | $5\,000$ | $5\,000$ | $5\,000$ |
| $0 \leq d \leq$ | $10$ | $10$ | $14$ | $16$ |
Vypíšte jeden riadok a v ňom jedno číslo udávajúce počet klík veľkosti presne $k$, ktoré sa nachádzajú v grafe.
4 5 3
0 1
1 2
2 0
0 3
1 3
2
Graf obsahuje dve kliky veľkosti tri. Tie sú zložené z vrcholov {0, 1, 2} a {0, 1, 3}.
4 4 4
0 1
1 2
2 3
3 0
0
Graf neobsahuje žiadnu kliku veľkosti 4, lebo neobsahuje hrany (0, 2) a (1, 3).
Stupeň vrchola je počet hrán, ktoré z neho vychádzajú. ↩
Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.
Trojsten, o.z.
FMFI UK, Mlynská dolina
842 48 Bratislava
Programátorská súťaž pre základoškolákov
Materiály a úlohy na výučbu programovania
Intenzívny programátorský zážitok v lete