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 |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 2048 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
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:
- citește un roboprogram și determină numărul de cifre afișate pe ecran după executarea roboprogramului;
- citește un roboprogram și determină cifrele afișate pe ecran după executarea roboprogramului;
- 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
...


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