asfaltare

Time limit: 0.1s Memory limit: 4MB Input: asfalt.in Output: asfalt.out

Un primar proaspăt ales vrea să dovedească electoratului său că votându-l, cetăţenii au făcut o alegere bună. În acest scop el a decis să reasfalteze străzile dintre NN edificii importante din oraş, numerotate de la 11 la NN. Între oricare două dintre aceste edificii există o singură stradă cu două sensuri de circulaţie. Edificiul numerotat cu 11 este primăria.

Primarul cere consilierilor să stabilească toate traseele pe care reasfaltarea străzilor o poate urma printre cele NN edificii, ştiind că are HH străzi “preferate” pe care trebuie să le asfalteze în mod obligatoriu. Se ştie că oricare două străzi preferate nu au capete comune. Traseele care se vor reasfalta trebuie să pornească de la primărie, să ajungă o singură dată la fiecare din celelalte N1N-1 edificii şi să se întoarcă tot la primărie.

Cerinţă

Determinaţi numărul traseelor distincte, respectând cerinţele de mai sus.

Date de intrare

Pe prima linie a fișierului de intrare asfalt.in se găsesc două numere naturale, separate printr-un spaţiu, reprezentând numărul edificiilor (NN), respectiv numărul străzilor preferate ale primarului (HH).

Date de ieșire

Pe prima linie a fișierului de ieșire asfalt.out se va găsi un singur număr întreg, reprezentând numărul traseelor distincte, posibile;

Restricții și precizări

  • 3N1 0003 \leq N \leq 1 \ 000
  • 0HN20 \leq H \leq \frac{N}{2}
  • Dacă un traseu este diferit de un altul doar prin direcţia în care se parcurge drumul, pornind de la primărie şi revenind aici, acesta se consideră identic cu primul. De exemplu, traseul 11 - 22 - 33 - 44 - 11 este identic cu traseul 11 - 44 - 33 - 22 - 11.

Exemplu

asfalt.in

4 1

asfalt.out

2

Log in or sign up to be able to send submissions!