Asfaltare
Un primar proaspat ales vrea sa dovedeasca electoratului sau ca votându-l, cetatenii au facut o alegere buna. În acest scop el a decis sa reasfalteze strazile dintre N edificii importante din oras, numerotate de la 1 la N. Între oricare doua dintre aceste edificii exista o singura strada cu doua sensuri de circulatie. Edificiul numerotat cu 1 este primaria.
Primarul cere consilierilor sa stabileasca toate traseele pe care reasfaltarea strazilor o poate urma printre cele N edificii, stiind ca are H strazi “preferate” pe care trebuie sa le asfalteze în mod obligatoriu. Se stie ca oricare doua strazi preferate nu au capete comune. Traseele care se vor reasfalta trebuie sa porneasca de la primarie, sa ajunga o singura data la fiecare din celelalte N-1 edificii si sa se întoarca tot la primarie.
Cerinta
Determinati numarul traseelor distincte, respectând cerintele de mai sus.
Date de intrare
Fisier de intrare: ASFALT.IN
Linia 1: N H
· doua numere naturale, separate printr-un spatiu, reprezentând numarul edificiilor (N), respectiv numarul strazilor preferate ale primarului (H).
Date de iesire
Fisier de iesire: ASFALT.OUT
Linia 1: x
· numar întreg pozitiv, reprezentând numarul traseelor distincte, posibile;
Restrictii
· 3 <= N <= 1000
· 0 <= H <= N/2
·
Daca un traseu este diferit de
un altul doar prin directia în care se parcurge drumul, pornind de la primarie
si revenind aici, acesta se considera identic cu primul. De exemplu, traseul
1-2-3-4-1 este identic cu traseul 1-4-3-2-1.
Exemplu
ASFALT.IN
4 1
ASFALT.OUT
2
Timp maxim de executare/test: 5 secunde