O misiune a echipei SG1 constă în activarea unui dispozitiv extraterestru acţionat cu ajutorul unei tastaturi ciudate formate din n comutatoare aflate iniţial toate în aceeaşi poziţie (să o notăm cu 0). Se ştie că trebuie setate (trecute în poziţia 1) exact k comutatoare şi că nu contează ordinea în care trebuie acţionate comutatoarele. În plus, cu ajutorul unor documente antice, au aflat că între oricare două comutatoare succesive setate se pot afla cel puţin d1 şi cel mult d2 comutatoare nesetate. De exemplu, pentru n=7, k=3, d1=1 şi d2=2, o configuraţie care corespunde cerinţei este: 0100101, în timp ce configuraţiile 1010001, 1100100, 1010101 nu corespund datelor problemei.
Dacă o combinaţie de comutatoare setate nu activează dispozitivul, nu se întâmplă nimic deosebit (ce plictisitor episod!), ci comutatoarele se resetează automat, permiţând încercarea altei combinaţii.
Se cere să se determine numărul maxim de configuraţii distincte de comutatoare setate pe care trebuie să le încerce echipa SG1 pentru a activa dispozitivul.
Cerinţă
Scrieţi un program care, pentru valorile n, k, d1, d2 date, determină numărul total de configuraţii posibile de comutatoare ce respectă condiţiile din enunţ.
Date de intrare
În fişierul text sg1.in se dau, pe aceeaşi linie, despărţite prin spaţii, valorile n, k, d1, d2.
Date de ieşire
În fişierul sg1.out se scrie numărul de configuraţii ce corespund cerinţei.
Restricţii
0 < n < 101
0 < k ≤ n
0 ≤ d1 ≤ d2 < n
Exemple
sg1.in
sg1.out
Explicaţii
7 3 1 2
8
Cele 8 configuraţii sunt: 1010100, 1010010,
1001010, 1001001,
0101010, 0101001,
0100101, 0010101