Atenție! Aceasta este o versiune veche a paginii., scrisă la 2017-03-24 11:48:08.000.
Revizia anterioară   Revizia următoare  

Fișierul intrare/ieșire robot1.in, robot1.out Sursă OJI 2017 clasa a 5-a
Autor Jakab Irma Tünde Adăugată de avatar francu Cristian Frâncu francu
Timp de execuție pe test 0.05 sec Limită de memorie 2048 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 halfstea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Robot1 (clasa a 5-a)

Paul dorește să învețe cum să programeze un robot. Pentru început s-a gândit să construiască un robot format dintr-un mâner, 10 butoane aranjate circular și un ecran. Pe butoane sunt scrise, în ordine crescătoare, cifrele de la 0 la 9, ca în figură.

Un roboprogram va fi format dintr-o secvență de instrucțiuni. Instrucțiunile pot fi:

Instrucțiune Semnificație
Dp
Mânerul robotului se deplasează spre dreapta cu p poziții (p este o cifră)
Sp
Mânerul robotului se deplasează spre stânga cu p poziții (p este o cifră)
A
Este apăsat butonul în dreptul căruia se află mânerul robotului și pe ecran apare cifra scrisă pe buton
T
Terminarea programului (se utilizează o singură dată la final și este precedată de cel puțin o instrucțiune A)

Inițial mânerul robotului este plasat în dreptul butonului 0, iar ecranul este gol. De exemplu, în urma executării roboprogramului D4AS1AAD6AT robotul apasă butoanele pe care sunt scrise cifrele 4, 3, 3, 9, iar pe ecran va apărea 4339.

Cerințe

Să se scrie un program care rezolvă următoarele cerințe:

  1. citește un roboprogram și determină numărul de cifre afișate pe ecran după executarea roboprogramului;
  2. citește un roboprogram și determină cifrele afișate pe ecran după executarea roboprogramului;
  3. citește un număr natural N și construiește un roboprogram de lungime minimă prin executarea căruia pe ecran se va obține numărul N; deoarece robotului îi place să se deplaseze în special spre dreapta, dacă există mai multe roboprograme de lungime minimă, se va afișa roboprogramul cu număr maxim de instrucțiuni D.

Date de intrare

Fișierul de intrare robot1.in conține pe prima linie un număr natural C, reprezentând cerința care urmează să fie rezolvată (1, 2 sau 3). Dacă C*=1 sau *C*=2, pe a doua linie a fișierului se află un roboprogram. Dacă *C*=3, pe a doua linie a fișierului de intrare se află numărul natural *N.

Date de ieșire

Fișierul de ieșire robot1.out va conține o singură linie. Dacă *C*=1, pe prima linie se va scrie un număr natural reprezentând numărul de cifre afișate pe ecran după executarea roboprogramului din fișierul de intrare.
Dacă *C*=2, pe prima linie vor fi scrise cifrele afișate pe ecran în urma executării roboprogramului din fișierul de intrare. Dacă *C*=3, pe prima linie va fi scris roboprogramul solicitat de cerința 3.

Restricții

  • 0 ≤ N ≤ 1000000000
  • Lungimea roboprogramului citit din fișierul de intrare sau scris în fișierul de ieșire este cel mult 1000 de caractere.
  • Dacă mânerul este plasat în dreptul butonului 0 și se deplasează spre dreapta, se va îndrepta către butonul 1; dacă deplasarea este spre stânga, se va îndrepta către butonul 9.
  • Pentru rezolvarea corectă a primei cerințe se acordă 10 de puncte, pentru rezolvarea corectă a celei de a doua cerințe se acordă 30 de puncte, iar pentru rezolvarea corectă a celei de a treia cerințe se acordă 50 de puncte. 10 puncte se acordă din oficiu.

Exemplu

robot1.in robot1.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