Fișierul intrare/ieșire robot2.in, robot2.out Sursă ONI 2017 clasa a 5-a
Autor Adriana Simulescu Adăugată de avatar francu Cristian Frâncu francu
Timp de execuție pe test 0.2 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 emptystea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Robot2 (clasa a 5-a)

Vlad a inventat un nou joc. Jocul conține N standuri așezate în linie dreaptă. Fiecare stand are o etichetă pe care este scris un număr natural. Eticheta este considerată corectă dacă numărul îndeplinește următoarele două condiții:

  • conține atât cifre pare, cât și cifre impare;
  • începe cu cifrele impare așezate în ordine crescătoare, urmate de cifrele pare în ordine descrescătoare.

De exemplu, eticheta 137860 este corectă, dar etichetele 23541, 135, 64 și 3146 nu sunt corecte.

Pentru jocul său, Vlad a construit robotul reparator care știe să verifice numere și să le repare, dacă este necesar. Robotul reparator se deplasează în linie dreaptă și se oprește pe rând la fiecare dintre cele N standuri. La fiecare stand, robotul verifică eticheta și dacă nu este corectă, o „repară”. Pentru a repara eticheta, robotul aranjează cifrele impare în ordine crescătoare, apoi, în continuare, aranjează cifrele pare în ordine descrescătoare; dacă eticheta nu conține nicio cifră impară, cea mai mare cifră pară o înlocuiește cu 9; dacă eticheta nu conține nicio cifră pară, cea mai mică cifră impară o înlocuiește cu 0. Deplasarea de la un stand la altul durează t secunde, verificarea etichetei unui stand durează v secunde, iar repararea acesteia durează r secunde. Cursa robotului se încheie după ce robotul a verificat toate cele N standuri și a reparat etichetele incorecte.

Cerință

Scrieți un program care citește numărul N de standuri, timpul (ora h, minutul m, secunda s) când robotul ajunge la primul stand, timpii t, v și r cu semnificația din enunț și etichetele standurilor și care rezolvă următoarele cerințe:

  1. calculează și afișează timpul (ora, minutul și secunda) când robotul a încheiat verificarea tuturor celor N standuri și repararea etichetelor incorecte;
  2. repară (unde este necesar) etichetele standurilor și afișează etichetele celor N standuri la final.

Date de intrare

Fișierul de intrare robot2.in conține pe prima linie un număr natural C, reprezentând cerința care urmează să fie rezolvată (1 sau 2). Pe linia a doua se află numerele naturale N, h, m, s, iar pe linia a treia numerele naturale t, v, r, cu semnificația din enunț. Numerele aflate pe aceeași linie sunt separate prin câte un spațiu. Pe următoarele N linii se află etichetele standurilor, în ordinea așezării acestora, câte o etichetă pe o linie.

Date de ieșire

Dacă C=1, fișierul de ieșire robot2.out va conține o singură linie pe care vor fi scrise 3 numere naturale separate prin câte un spațiu hf mf sf, reprezentând ora, minutul și respectiv secunda la care robotul termină repararea.
Dacă C=2, fișierul de ieșire robot.out va conține N linii pe care vor fi scrise etichetele standurilor, în ordinea așezării acestora, după ce robotul a încheiat verificarea și repararea, câte o etichetă pe o linie.

Restricții

  • 2 ≤ N ≤ 500
  • Etichetele standurilor au cel puțin două și cel mult nouă cifre.
  • Robotul începe și încheie repararea în aceeași zi; 0 ≤ h, hf < 24; 0 ≤ m, mf, s, sf < 60
  • Pentru rezolvarea corectă a cerinței 1 se acordă 40 de puncte; pentru rezolvarea corectă a cerinței 2 se acordă 60 de puncte.

Exemplu

robot2.in robot2.out Explicații
1
3 11 20 50
7 5 15
376572
3564
123
11 21 49
Cerința este 1. Există 3 standuri. Pentru simplitate notăm cu h:m:s ora h, m minute și s
secunde. La primul stand robotul ajunge la ora 11:20:50. Primul stand are eticheta
376572, care este incorectă, deci robotul o repară. Aici va petrece 5 secunde pentru veri-
ficare și 15 secunde pentru reparare, deci va pleca de aici la ora 11: 21:10. La al doilea
stand va ajunge la ora 11:21:17; eticheta sa 3564 este corectă deci robotul nu o va mo-
difica; aici va petrece 5 secunde pentru verificare și pleacă la ora 11:21:22. La al treilea
stand va ajunge la ora 11:21:29. Al treilea stand are eticheta incorectă 123, robotul o
repară, deci aici va petrece 5+15=20 secunde și ora la care încheie cursa este 11:21:49.
2
3 11 20 50
7 5 15
376572
3564
113
357762
3564
130
Cerința este 2. Există 3 standuri.
Primul stand are eticheta 376572, care este incorectă, robotul o repară și aceasta
devine 357762.
La al doilea stand eticheta 3564 este corectă. deci robotul nu o va modifica.
Al treilea stand are eticheta incorectă 113, robotul o repară și devine 130.

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

Indicii de rezolvare

Arată 5 categorii