| P1etonu a întrebat:

Cineva care se pricepe in C sa ma ajute la o problema? Va rog

2 răspunsuri:
| Creierash a răspuns:

Scrie problema sa vedem

| P1etonu explică (pentru Creierash):

Locuitorilor din Codeland le-a fost declarat război de către nemiloșii barbari din Common Town, mult mai numeroși și specializați în lupte. Întrucât printre codelandieni există un vrăjitor bătrân, fost student al Facultății de Automatică și Calculatoare, acesta le-a promis că își va folosi ultimele puteri pentru a vă trimite vouă, studenților, locațiile bazelor în care sunt situați luptătorii din Codeland, pentru ca voi să vă alăturați lor în cele mai sigure baze. Magia, însa, e mai complicată de atât, iar voi, studenții, trebuie să vă arătați demni de a o accesa! Datele transmise de vrăjitor ajung la voi criptate, alături de un pergament pe care sunt explicate regulile decriptării.
Task 1

40% din punctajul pe teste

Primul număr primit, b, reprezintă ingredientul principal al magiei. Acesta este urmat de dimensiunile terenului pe care sunt situate bazele, m și n, ce este structurat asemenea unei matrice. Terenul conține linii între 0 și m-1 și coloane între 0 și n-1. Până la întâlnirea lui -1, vă va fi oferit un șir de numere, pe care voi trebuie să îl decodificați; b reprezintă numărul maxim de biți pe care îi puteți reține deodată.

Considerând că b este egal cu 3, iar șirul de numere este 2, 3, 1, 5, -1 (în binar, 10, 11, 1, 101), șirul nou format va fi 1 0 1 1 1 0, astfel:

luăm cei 2 biți ai numărului 2, deoarece nu ajung la limita lui b; (1 0)
din cei 2 biți ai numărului 3, îl putem lua doar pe primul, moment în care am atins numărul maxim de biți pe care îi putem reține deodată; (1 0 1)
cel de-al doilea bit al numărului 3 este ignorat;
luăm singurul bit al numărului 1; (1 0 1 1)
luăm doar primii 2 biți ai numărului 5 și îl ignorăm pe ultimul, deoarece ar depăși limita impusă de b. (1 0 1 1 1 0)

Prima parte a acestei teme presupune găsirea acestui șir de biți, folosindu-vă de numărul b și de șirul de numere oferite de vrăjitor.