Costel a descoperit într-o debara servieta cu cifru a tatălui său. Cifrul este compus din discuri metalice pe care sunt inscripționate cifrele de la la . Fiecare disc se poate mișca individual, de sus în jos sau de jos în sus, formându-se combinații de cifre. De multe ori, datorită comodității, combinația ce permite deschiderea servietei este formată numai din cifre identice: etc.
Costel își imaginează un cifru compus din discuri metalice, fiecare având inscripționate cifrele de la la , fiecare putând fi deplasat în cele două direcții specificate anterior. Prin mutare Costel înțelege deplasarea unui disc în sus sau în jos, cu o singură poziție, adică deplasarea discului până la cifra precedentă, respectiv următoare celei curente.
Cerință
Realizați un program care, cunoscând poziția inițială a fiecărui disc dintre cele N discuri ale cifrului, determină și afișează:
- cifra cea mai mare care apare pe discurile cifrului în forma inițială;
- numărul minim de mutări necesare pentru ca numărul obținut pe cifru să fie compus numai din cifre identice, număr necesar deschiderii servietei;
- cifra cea mai mică ce se poate obține în urma efectuării numărului minim de mutări determinat;
- numărul de combinații formate din cifre identice, care se poate obține în urma efectuării numărului minim de mutări determinat.
Date de intrare
Fișierul cifru.in
conține:
- pe prima linie numărul natural reprezentând numărul discurilor;
- pe următoarele linii câte o cifră, reprezentând cifra curentă de pe fiecare disc al cifrului.
Date de ieșire
În fișierul de ieșire cifru.out
se vor afișa, pe linii separate, cele valori solicitate.
Restricții și precizări
- ;
- Un disc poate să rămână nemișcat.
- Pentru rezolvarea corectă a cerinței se acordă din punctajul fiecărui test
- Pentru rezolvarea corectă a cerinței se acordă din punctajul fiecărui test
- Pentru rezolvarea corectă a cerinței se acordă din punctajul fiecărui test
- Pentru rezolvarea corectă a cerinței se acordă din punctajul fiecărui test
Exemplu
cifru.in
4
7
3
9
0
cifru.out
9
7
0
2
Explicație
Avem un cifru cu discuri. Inițial, cifrul este în starea (primul disc este poziționat pe cifra , al doilea pe cifra etc.) Cea mai mare cifră de pe cifru este cifra .
Numărul minim de mutări este și se poate obține în două moduri:
- Deplasăm primul disc cu poziții în sus, al doilea disc cu poziții în jos, al treilea rămâne nemișcat, iar ultimul se deplasează cu o poziție în jos. Combinația obținută este .
- Deplasăm primul disc cu poziții în sus, al doilea disc cu poziții în jos, al treilea cu o poziție în sus, iar ultimul rămâne nemișcat. Combinația obținută este . Astfel, cifra cea mai mică ce formează combinația cu număr minim de mutări este . Avem combinații care se pot obține în numărul minim de mutări determinat: și .