Vlad a inventat un nou joc. Jocul conţine 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 este corectă, dar etichetele , , şi 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 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 ; dacă eticheta nu conţine nicio cifră pară, cea mai mică cifră impară o înlocuieşte cu . Deplasarea de la un stand la altul durează secunde, verificarea etichetei unui stand durează secunde, iar repararea acesteia durează secunde. Cursa robotului se încheie după ce robotul a verificat toate cele standuri şi a reparat etichetele incorecte.
Cerinţă
Scrieţi un program care citeşte numărul de standuri, timpul (ora , minutul , secunda ) când robotul ajunge la primul stand, timpii , și cu semnificaţia din enunţ şi etichetele standurilor și care rezolvă următoarele cerințe:
- calculează şi afişează timpul (ora, minutul şi secunda) când robotul a încheiat verificarea tuturor celor standuri şi repararea etichetelor incorecte;
- repară (unde este necesar) etichetele standurilor şi afişează etichetele celor standuri la final
Date de intrare
Fişierul de intrare robot.in
conţine pe prima linie un număr natural , reprezentând cerinţa care urmează să fie rezolvată ( sau ). Pe linia a doua se află numerele naturale , , , , iar pe linia a treia numerele naturale , , , cu semnificaţia din enunţ. Numerele aflate pe aceeaşi linie sunt separate prin câte un spaţiu. Pe următoarele linii se află etichetele standurilor, în ordinea aşezării acestora, câte o etichetă pe o linie.
Date de ieșire
Dacă , fişierul de ieşire robot.out
va conţine o singură linie pe care vor fi scrise numere naturale separate prin câte un spaţiu , reprezentând ora, minutul şi respectiv secunda la care robotul termină repararea.
Dacă , fişierul de ieşire robot.out
va conţine 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 și precizări
- Etichetele standurilor au cel puțin două și cel mult nouă cifre.
- Robotul începe și încheie repararea în aceeaşi zi.
- Pentru rezolvarea corectă a cerinţei se acordă de puncte.
- Pentru rezolvarea corectă a cerinţei se acordă de puncte.
Exemplul 1
robot.in
1
3 11 20 50
7 5 15
376572
3564
123
robot.out
11 21 49
Explicație
Cerinţa este . Există standuri. Pentru simplitate notăm cu ora , minute şi secunde. La primul stand robotul ajunge la ora . Primul stand are eticheta , care este incorectă, deci robotul o repară. Aici va petrece secunde pentru verificare şi secunde pentru reparare, deci va pleca de aici la ora . La al doilea stand va ajunge la ora ; eticheta sa este corectă deci robotul nu o va modifica; aici va petrece secunde pentru verificare şi pleacă la ora . La al treilea stand va ajunge la ora . Al treilea stand are eticheta incorectă , robotul o repară, deci aici va petrece secunde şi ora la care încheie cursa este .
Exemplul 2
robot.in
2
3 11 20 50
7 5 15
376572
3564
113
robot.out
357762
3564
130
Explicație
Cerinţa este . Există standuri.
Primul stand are eticheta , care este incorectă, robotul o repară şi aceasta devine .
La al doilea stand eticheta este corectă. deci robotul nu o va modifica.
Al treilea stand are eticheta incorectă , robotul o repară şi devine .