.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » numar5

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
numar5


Timp maxim de execuţie / test:
0.1s
Memorie totala disponibilă / stivă:
2MB / 1MB

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 numar5.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 numar5.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

Exemple

numar5.innumar5.outExplicaţii
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.

autor: Prof. Roxana Tîmplaru
propunător: Prof. Emanuela Cerchez
Colegiul Naţional ″Emil Racoviţă″
emanuela.cerchez@gmail.com
Probleme recomandate
De la ONI 2012: culegere, culori2, stele1, cartier, medalion, bile6, proiecte, zigzag, alune, cuburi4, optim, cifreco, patru, puncte5, unuzero, sstabil, palindrom1, intersectii, copaci2, 7segmente, amedie, cutie1, drept2, gheizere, plus, poly, minerale
De acelaşi autor: numere4, tablou, numar1, prieteni2, roboti, numere6, cartonas, test1, v, cuvant, roboti1, asfalt, grupe2, joc17, munte3
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, kafka, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, furnici, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, xor1, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, punctfix, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, tetris3, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, colina, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
Despre cifre: cifre1, div3, aparitii, numar1, prieteni, robinson, aritma, cezar, pal, suma2, cod4, powerpuff, ucif, sir4, numere6, pluton, mare, cifre2, ceas2, cod5, paritate, test1, comoara1, cifre3, concurs3, control, submult, visul, codul, numere9, sume2, smith, secvsir, prefix1, fazanr, prodmax, palindrom, control1, paltrei, alo, cifra1, case1, pin, sumacifre, triplu, goe, talent, copii, cifre4, nr0, anagramabil, codcorect, test2, bancomat, sume4, alice, culegere, cuburi4, cifreco, 7segmente, unupatru, xyz, unific, galbeni, cladiri2, extraprime, momente, palindromuri, conturi, numere12, imprimanta, martisoare, cifre5, pagini, tan, centrale, ech, speciale, cuart, inventie, robot5
surse trimise | ajutor