Atenţie! Aceasta este o versiune veche a paginii, scrisă la 2014-03-28 23:27:26.
Revizia anterioară   Revizia următoare  

Bancomat

Bancnotele de valori mici vor fi păstrate pentru a "completa" suma cerută de un client. Mai exact, dacă un client doreşte să extragă 364 de bani din bancomat, suma de 4 bani poate fi obţinută doar din bancnote de 1 ban. Intuitiv, trebuie să păstrăm bancnotele cu valoare mică pentru rezolvarea acestor cazuri. Vom oferi suma de bani cerută de fiecare client în parte în mod optim, folosind monedele, în ordinea descrescătoare a valorii acestora. Vom "umple" fiecare sumă de bani X mai întâi cu bancnote de 500 lei, apoi de 100 lei, 50 lei, etc. Dacă nu putem să oferim suma cerută de un om, vom returna NU.

Basequery

Vom transforma fiecare număr din şir în toate bazele de numeraţie între 2 şi 16. Pentru fiecare număr astfel obţinut, vom parcurge toate secvenţele care au valoarea din baza 10 mai mică decât 1024, folosind doi indici. Pentru fiecare astfel de secvenţă, vom reţine baza în care este scrisă, lungimea acesteia şi valoarea ei din baza 10. Deci, de fiecare dată când dăm peste o secvenţă de lungime L, scrisă în baza B, cu valoarea X în baza 10, vom adăuga într-o sumă asociată acestor 3 stări X. Vom construi astfel o structură tridimensională cu următoarea semnificaţie:

  • d[base][length][val] = C( A i, P, B ) * A i

Astfel, pentru fiecare întrebare din cele Q, vom transforma secvenţa P, de lungime L din baza B în baza 10, reţinând şi valoarea acesteia. Rămâne să afişăm valoarea reţinută în structura construită mai sus.

Beep

Vom citi cuvântul interzis. Vom citi apoi fiecare cuvânt în parte din textul care trebuie corectat. Comparăm fiecare cuvânt citit cu cel interzis. Dacă sunt egale, vom afişa "beep". În caz contrar, vom afişa chiar cuvântul citit.

Concert2