Bradul de Crăciun se împodobește tradițional în Ajunul Crăciunului (24 decembrie), dar în zilele noastre multă lume îl decorează mai devreme, adesea în perioada 1-6 decembrie, pentru a se bucura de atmosfera festivă, mai ales dacă folosesc brazi artificiali, dar brazii naturali se recomandă a fi împodobiți chiar înainte de Crăciun pentru a nu se usca.
Crăciunul se apropie cu pași repezi, iar diseară plănuiești să împodobești bradul. Tu ai globuri de două culori: roșii și albastre. Pe fiecare creangă trebuie să pui fie un glob roșu, fie un glob albastru (dar nu poți să le pui pe ambele). Totuși, nu orice colorare îți place. Știi că unele crengi se ating, iar pentru a face bradul mai colorat, te-ai decis să nu pui globuri de aceeași culoare pe două crengi care se ating.
Dacă bradul poate fi decorat cu globuri astfel încât oricare două crengi care se ating să aibă globuri de culoare diferită, atunci bradul se numește decorabil.
Cerință
Se dau -- întrebarea la care vrei să răspunzi, -- numărul de crengi ale arborelui, -- numărul de perechi de crengi care se ating în arbore și perechi de crengi, reprezentând crengile care se ating.
- Dacă , să se afle dacă bradul este decorabil sau nu.
- Dacă , știi deja sigur că bradul este decorabil, dar vrei să rearanjezi puțin de tot crengile, astfel încât o nouă pereche de crengi să se atingă (înainte nu se atingeau). Să se afle în câte moduri se poate alege această nouă pereche de crengi astfel încât bradul să fie în continuare decorabil.
Nu se garantează că bradul este conectat.
Date de intrare
Pe prima linie a fișierului de intrare brad.in se află numărul . Pe a doua linie a fișierului se află numerele naturale . Pe următoarele linii se vor afla perechi de valori , separate printr-un spațiu, reprezentând două crengi care se ating.
Date de ieșire
Să se afișeze în fișierul brad.out răspunsul la cerința .
Restricții și precizări
- ;
- ;
- Dacă se două crengi se ating, atunci nu va exista în fișier și mențiunea că se ating (e de la sine înțeles).
- O creangă nu se poate atinge de ea însăși.
- Un brad se numește conectat dacă de la orice creangă se poate ajunge la orice altă creangă printr-o serie de crengi care se ating una pe alta.
| # | Punctaj | Restricții |
|---|---|---|
| 1 | 14 | |
| 2 | 17 | |
| 3 | 15 | |
| 4 | 18 | |
| 5 | 19 | și bradul este conectat |
| 5 | 17 |
Exemplul 1
brad.in
1
5 5
1 2
2 3
3 4
4 1
2 5
brad.out
DA
Explicație
Punem globuri albastre pe ramurile cu numere impare, iar pe cele pare globuri roșii.
Exemplul 2
brad.in
1
5 4
2 5
5 1
4 2
2 1
brad.out
NU
Explicație
Oricum am încerca să aranjăm globurile, nu vom reuși să avem un brad decorabil.
Exemplul 3
brad.in
2
5 5
1 2
2 3
3 4
4 1
2 5
brad.out
1
Explicație
Pentru împodobirea de la exemplul putem rearanja crengile , iar bradul va continua să fie decorabil.