Revizia anterioară Revizia următoare
Fişierul intrare/ieşire: | telefon.in, telefon.out | Sursă | Grigore Moisil 2010, clasele 5-6 |
Autor | Clara Ionescu | Adăugată de | |
Timp execuţie pe test | 0.1 sec | Limită de memorie | 6144 kbytes |
Scorul tău | N/A | Dificultate | N/A |
Vezi solutiile trimise | Statistici
Telefon
![]() Intra aici daca vrei sa ne ajuti sa imbunatatim calitatea testelor pentru aceasta problema! |
Avem un telefon pe care butoanele cu cifre sunt aranjate ca în figura alăturată. Acest telefon este acţionat de către un robot care, iniţial, are capul de acţionare deasupra butonului *. Robotul se comandă cu următoarele comenzi:
- S x – capul de acţionare se mişcă x unităţi în sus
- J x – capul de acţionare se mişcă x unităţi în jos
- DR x – capul de acţionare se mişcă x unităţi în dreapta
- ST x – capul de acţionare se mişcă x unităţi în stânga
- A – apasă capul de acţionare pe butonul deasupra căruia se află.
La terminarea formării numărului, capul trebuie să fie poziţionat deasupra butonului #.
Cerinţă
Scrieţi un program care citeşte un număr de telefon, având cel mult 10 cifre, apoi realizează apelarea acelui număr prin intermediul robotului, parcurgând un drum de lungime minimă deasupra tastaturii.
Date de intrare
În fişierul de intrare telefon.in este scris un număr întreg, reprezentând numărul de telefon care trebuie apelat.
Date de ieşire
În fişierul de ieşire telefon.out se vor scrie comenzile pe care trebuie să le execute robotul pentru a apela numărul de telefon dat. Comenzile se vor scrie pe o singură linie, în ordinea în care va trebui să le efectueze robotul. Două comenzi se vor despărţi printr-un singur spaţiu.
Exemplu
telefon.in | telefon.out |
---|---|
123804 | S 3 A DR 1 A DR 1 A J 2 ST 1 A J 1 A S 2 ST 1 A J 2 DR 2 |
Explicaţie
Mai întâi trebuie să mutăm capul de acţionare de deasupra butonului * deasupra butonului 1. În acest scop ne mutăm în sus 3 poziţii (S 3) şi apăsăm butonul (A). Urmează butonul 2, deci mutăm capul o poziţie la dreapta (DR 1) şi apăsăm (A). Pentru a ajunge la butonul 3, din nou facem o mutare la dreapta cu o poziţie (DR 1) şi apăsăm (A). Pentru a ajunge deasupra butonului 8, mai întâi mutăm capul în jos 2 poziţii (J 2), apoi la stânga o poziţie (ST 1) şi apăsăm (A). 0 se află sub 8, deci avem o mutare (J 1) şi apăsăm (A). Acum trebuie să ajungem la 4, deci urcăm 2 poziţii (S 2), apoi mutăm capul o poziţie la stânga (ST 1) şi apăsăm (A). În final mutăm capul deasupra butonului # cu comenzile J 2 şi DR 2. Aici nu trebuie să apăsăm butonul.