Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | senila.in, senila.out | Sursă | Cerc informatică Vianu |
|---|---|---|---|
| Autor | Cristian Frâncu | Adăugată de |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 1024 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Șenila (clasa a 6-a)
Avem o șenilă formată din S segmente. Ea stă cu un singur segment pe pămînt și se poate rostogoli. Fiecare segment este codificat cu un număr binar între 00 și 11 (patru valori posibile). Toată șenila se codifică cu un număr binar B format prin alipirea tuturor numerelor binare de pe segmentele șenilei, astfel:
- Ultimele două cifre ale numărului B sînt cifrele scrise pe segmentul care stă pe pămînt.
- Penultimele două cifre ale numărului B sînt cifrele scrise pe segmentul ce urmează să calce cînd șenila se rostogolește.
- Antepenultimele două cifre ale numărului B sînt cifrele scrise pe segmentul ce urmează să calce cînd șenila se rostogolește de două ori.
... - Primele două cifre ale numărului B sînt cifrele scrise pe segmentul imediat următor segmentului de pe pămînt, ultimul care ar atinge pămîntul cînd șenila se rostogolește, înainte de o rotație completă.
Remarcați că prin rostogolire șenila își va schimba codificarea.
Șenila se plimbă pe o tablă formată din celule pătrate, astfel: la fiecare pas ea se rostogolește în direcția pe care o codează segmentul care e pe pămînt. Direcția se calculează astfel:
| cod segment | directie |
|---|---|
| 00 |
dreapta |
| 01 |
jos |
| 10 |
stînga |
| 11 |
sus |
Inițial tabla conține numărul zero în toate celulele. În celula din care pleacă șenila ea suprascrie codificarea sa, însă nu în binar ci în zecimal. Apoi ea avansează conform instrucțiunilor și, de fiecare dată, își scrie noua codificare în celula în care ajunge, ca număr zecimal.
Cerințe
Se dau numărul de segmente S al șenilei, precum și un număr zecimal Z a cărui reprezentare binară codifică șenila în poziția inițială.
a) Dat numărul K să se spună noua codificare a șenilei după ce șenila s-a rotit de K ori. Numărul va fi afișat în zecimal.
b) Dat numărul A și considerînd că șenila pleacă de la linia 1 și coloana 1 a tablei și avansează conform mișcării descrise, să se spună noile ei coordonate după ce ea avansează de A ori.
c) Considerînd că tabla are M linii și N coloane, M și N date și știind că șenila pornește de la linia L și coloana C (prima linie și prima coloană se numerotează cu unu) și mai știind că șenila se rostogolește de maxim R ori, R citit, sau pînă ce aceasta se rostogolește în afara tablei să se afișeze matricea finală atunci cînd șenila se oprește.
Date de intrare
Fișierul de intrare senila.in ...
Date de ieșire
În fișierul de ieșire senila.out ...
Restricții
- ... ≤ ... ≤ ...
Exemplu
| senila.in | senila.out |
|---|---|
| This is some text written on multiple lines. |
This is another text written on multiple lines. |
Explicație
...

Poți vedea testele pentru această problemă accesând