Lista de probleme 2

Într-un laborator cibernetic se fac experimente cu roboţi. Pe o bandă de lucru se află aşezate unul lângă altul, N cuburi galbene şi albastre, numeroate în ordine cu valori de la 1 la N. Pentru fiecare cub se cunoaşte latura acestuia, exprimată în centimetri, şi culoarea, codificată prin simbolul g (pentru galben) sau a (pentru albastru). Un robot inteligent este programat să construiască turnuri prin aşezarea cuburilor unul peste altul. El se află în faţa benzii de lucru, analizează fiecare cub în ordine, de la primul la ultimul, şi procedează astfel :

  • dacă este primul cub, îl lasă la locul lui pe bandă;
  • aşează cubul numerotat cu K peste cubul numerotat cu K-1 doar dacă el are culoarea diferită şi latura mai mică decât cubul K-1. Această operaţie se efectuează în cazul în care cubul K-1 se află deja într-un turn constuit anterior sau dacă el a rămas în poziția inițială. În cazul în care cubul K nu poate fi aşezat peste cubul K-1, el rămâne la locul lui.

Ştiind că un turn poate fi format din cel puţin un cub, scrieţi un program care să determine:
1. numărul final T al turnurilor de pe bandă şi H, înălţimea celui mai înalt turn care se poate forma, exprimată în centimetri;
2. cel mai mare număr de cuburi Nmax ce pot forma un turn, dacă cele N cuburi ar putea fi rearanjate inițial pe bandă, unul lângă altul.

Se consideră răsturnatul unui număr natural valoarea obținută prin parcurgerea cifrelor acestuia de la dreapta la stânga. De exemplu, răsturnatul numărului 245 este 542. Un număr este palindrom dacă este egal cu răsturnatul său. De exemplu 121 este palindrom, iar numărul 21 nu este palindrom.
Se consideră inițial șirul numerelor naturale 0, 1, 2, 3, 4, …
Din acest șir se elimină numerele divizibile cu 10 și, după fiecare număr care NU este palindrom, se inserează răsturnatul său. Noul șir astfel obținut va fi 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 21, 13, 31, …

Scrieți un program care să citească:
1. un număr natural n și să afișeze al n-lea număr eliminat din șirul inițial;
2. un număr natural x și să afișeze următoarele trei numere: n1 – numărul de apariții în noul șir ale numărului obținut din x prin eliminarea ultimei sale cifre; n2 – numărul de apariții în noul șir ale numărului obținut din x prin eliminarea ultimelor sale două cifre; n3 – numărul de apariții în noul șir ale numărului obținut din x prin eliminarea ultimelor sale trei cifre.
3. un număr natural k și să afișeze numărul valorilor de k cifre din noul șir.