Fișierul intrare/ieșire numar.in, numar.out Sursă ONI 2012 clasa a 6-a
Autor Roxana Tîmplaru Adăugată de avatar francu Cristian Frâncu francu
Timp de execuție pe test 0.1 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 fullstea de rating de tip empty
open book Poți vedea testele pentru această problemă accesând atașamentele .

Număr (clasa a 6-a)

Pentru un număr dat cu k cifre c1c2 … ck , se numește deplasare circulară spre dreapta de la o cifră inițială ci, deplasarea din cifră în cifră spre dreapta de ci ori (1 ≤ i ≤ k). Dacă pe parcursul deplasării s-a ajuns la cifra ck, se continuă deplasarea circulară spre dreapta cu cifra c1.
Un număr cu k cifre se numește număr „circular” dacă îndeplinește următoarele două cerințe:

  • toate cifrele sunt nenule;
  • pornind de la cifra c1, aplicând algoritmul de deplasare circulară spre dreapta de exact k ori, se ajunge din nou la c1, fiecare dintre cifrele numărului fiind exact o singură dată cifră inițială.

De exemplu, numărul 2396 este un număr “circular”, pentru că are doar cifre nenule și algoritmul de deplasare circulară spre dreapta se aplică astfel:

  1. Se pornește de la cifra inițială 2 (2 3 9 6) și se numără două cifre spre dreapta, ajungând la cifra finală 9: 2 3 9 6.
  2. Se pornește de la cifra inițială 9 și se numără nouă cifre spre dreapta, ajungând la cifra finală 6: 2 3 9 6.
  3. Se pornește de la cifra inițială 6 și se numără șase cifre spre dreapta, ajungând la cifra finală 3: 2 3 9 6.
  4. Se pornește de la cifra inițială 3 și se numără trei cifre spre dreapta, ajungând la cifra finală 2: 2 3 9 6.

Astfel, se ajunge la prima cifră din număr, adică la cifra 2, după exact 4 aplicări ale algoritmului, iar fiecare dintre cifrele numărului este exact o dată cifră inițială.

Cerință

Scrieți un program care citește numărul natural nenul n, apoi numerele naturale x1, x2, ..., xn, și determină:

a) cel mai mare număr din șir în care există cel puțin o cifră care apare de minimum două ori; în cazul în care în șir nu există un astfel de număr, se va afișa cel mai mare număr din șir;
b) un șir a1, a2, ..., an de n numere naturale pentru care un element ai (1 ≤ i ≤ n) se calculează astfel:

  • este egal cu xi, dacă xi este număr circular;
  • este numărul cel mai apropiat de xi (număr mai mare sau mai mic decât xi), cu proprietatea că este număr circular; dacă pentru un număr din șir se identifică un număr circular y, y > xi și un număr circular z, z < xi, pentru care y-xi = xi-z, atunci se va alege numărul y.

Date de intrare

Fișierul de intrare numar.in conține pe prima linie numărul n, iar pe următoarele n linii numerele naturale x1, x2, ..., xn.

Date de ieșire

Fișierul de ieșire numar.out va conține pe prima linie un număr natural determinat conform cerinței a), iar pe următoarele n linii șirul de numere determinat conform cerinței de la punctul b), fiecare număr pe câte un rând.

Restricții

  • 0 < n < 100
  • 9 < xi < 999589, 1 ≤ i ≤ n

Exemplu

numar.in numar.out Explicație
5
15
123
1972
222
515
515
15
117
1959
222
522
a) 515 este cel mai mare număr dintre cele cinci numere citite, număr
ce conține o cifră care apare de minimum două ori.
b) Pentru 15 : de la cifra inițială 1, se numără o cifră și se ajunge
la cifra finală 5, apoi începând de la cifra 5 ca cifră inițială, se numără
cinci cifre și se ajunge la cifra finală 1. Astfel cifrele 1, 5 sunt
o singură dată cifre inițiale și după două aplicări ale algoritmului
de deplasare se ajunge la prima cifră, deci 15 este număr circular.
Pentru 123: de la cifra inițială 1, se numără o cifră și se ajunge la
cifra finală 2, apoi începând de la cifra 2 ca cifră inițială, se numără
două cifre și se ajunge la cifra finală 1. Astfel, se ajunge din nou la
prima cifră, însă algoritmul de deplasare s-a aplicat doar de două ori și
nu trei ori, iar cifra 3 nu a fost cifră inițială. Ca urmare, 123 nu este
număr circular. Se determină cele două numere circulare, y=141 și z=117,
cel mai apropiat de 123 dintre ele fiind 117.
Cu celelalte numere se procedează în același mod.

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

Indicii de rezolvare

Arată 2 categorii