Atenție! Aceasta este o versiune veche a paginii., scrisă la 2014-12-18 02:17:24.000.
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 avatar francu Cristian Frâncu francu
Timp de execuție pe test 0.05 sec Limită de memorie 1024 KB
Scorul tău N/A Dificultate stea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip fullstea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Ș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

...

Trebuie să te autentifici pentru a trimite soluții. Click aici

Indicii de rezolvare

Arată 4 categorii