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

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


Timp maxim de execuţie/test:
0.15 secunde
Memorie totala disponibilă/stivă:
32 MB/1 MB

Să considerăm două şiruri de caractere s1 şi s2, având aceeaşi lungime N.
Distanţa Hamming dintre cele două şiruri este H(s1, s2) = numărul de poziţii i (0<=i<N) pentru care s1[i]!=s2[i].
De exemplu, H("motan", "saten")=3.
Un dezavantaj îl constituie faptul că pentru a utiliza distanţa Hamming cele două şiruri trebuie să aibă aceeaşi lungime. Pentru a elimina acest dezavantaj, am putea completa şirul mai scurt, adăugând la sfârşit un caracter care nu apare în niciunul dintre cele două şiruri (de exemplu, *).
Egalizând astfel lungimile celor două şiruri este posibil ca între două şiruri foarte asemănătoare să se obţină o distanţă Hamming foarte mare.
De exemplu H("uimit","umil*")=4.
Dacă am insera * după caracterul u, atunci H("uimit","u*mil")=2
Prin urmare intenţionăm să inserăm optimal * în cele două şiruri astfel încât:

  1. lungimile şirurilor obţinute să fie egale;
  2. distanţa Hamming dintre şirurile obţinute să fie minimă;
  3. lungimile şirurilor obţinute să nu depăşească 10000 de caractere.

Cerinţă

Scrieţi un program care să insereze optimal caractere * în şirurile s1, s2.

Date de intrare

Fişierul de intrare distsir.in conţine două linii. Pe prima linie se află şirul s1, iar pe a doua linie se află şirul s2.

Date de ieşire

Fişierul de ieşire distsir.out va conţine 3 linii. Pe prima linie va fi scrisă distanţa Hamming minimă, obţinută după inserarea caracterelor *. Pe linia a doua va fi scris şirul obţinut din s1 după inserarea caracterelor *, iar pe linia a treia va fi scris şirul obţinut din s2 după inserarea caracterelor *.

Restricţii

  • Şirurile s1 şi s2 sunt formate din cel mult 2000 de caractere (litere mari, litere mici, cifre, spaţii, semne de punctuaţie).
  • Dacă există mai multe variante de a obţine distanţa Hamming minimă, afişaţi una dintre acestea.

Exemple

distsir.in distsir.out
alei
calorii
4
*ale*i*
calorii

prof. Emanuela Cerchez
Liceul de Informatică „Grigore Moisil” Iaşi
emanuela.cerchez@gmail.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2009: efort, muzeu, bal, seti, basm, dansatori, smith, timer, secvsir, vot, cetati, reziduu, biliard, prefix1, accesibil, dp, jocv, placa, palc, prod3, predecesor, standard, cantor, nkbiti, nori, triti, kperms, sotron1, impozit, tablite, fazan, lanturi, secvpar, tom, joker, matriosca, asociativ, lego, medalii, permutari, cfr, treegame, scanduri, site, fotbal, links, kbiti, segm, album, iepurasi, jucarii, m4, bradut, trmv, colorare, greutati, concat, graphgame, ic, echilibru, brazi, mat, cubinvers, mobil, parbit
De acelaşi autor: celule, scp, vedete, film, ab, supertri, inginer, camp, sl, detinut, simetric, egal, gropi, ruleta, carti, tgv, uscat, afise, dezbateri, bunici, rv, onu, nspecial, secvop, cadou, chimie, reteta, piticot, petrol, checkin, teanc, index, teren, pizza, ecran, drum, text, lbd, aven, spam, pluricex, tren2, gray, pasi, mgo, joc, anagrame, vecini, criptmat, maxim, cutie, party, friends, net, sablon, hd, pc, sir2, aztec, scara, nr, robot2, sah, formule, ed, bilete, hanoig, flood, matrice3, erdos, grup, cd, kfactor, np, cuc, radio, honest, ref, nr01, scor2, convert, auto2, compress, politics, pm, playlist, barbie, firma1, submatrix, ham, pizza1, exam, ants, teatru1, cifre1, bile1, caini, secvreg, pasune, remi, m01, sir23, tren1, joc5, pachete, aedaro, windows, renju, latime, mere1, piloti, peste, pitici, sirag1, stive, turn1, carti1, program1, spioni, kgb, lift, apel, lex, oras, homeless, subsir, dist, harta1, adevar, joc10, bare, zapezi, masina2, perechi1, raft, joc11, joc12, ferma, fni, tunel, lover, pepsi, transport, avion, monkey, premii1, garaj, carti2, tv, pact, fat, cafea, echipe1, secvente, petrom, peg, scara1, lant, ecuatii, stiva, bile4, jungla, rj, poli, text1, compus1, rez, politie, anag, codul, coment, muzeu, seti, basm, timer, secvsir, dp, placa, prod3, bursa, submdisj, sotron1, fazan, secvpar, joker, lego, medalii, cfr, antipatie, figura, links, segm, colorare, brazi, mobil, guess, greiere, pestera, conferinta, chei, ny, nx, ghinion, sumb, drenaj, telecomanda, grupuri, mahjong, rotund, viena, sport2, cos, monoton, micro, valet, nr0, maxviz, anagramabil, nrpal, lista, dame, consiliu, adprod, arme, deal, prodnr, compar, latin, interviu, vintage, prize, nrdiv, arrows, tdrept, agenda, reziston, vot2, tema, smiley, relatii, ech, scadere, nebuni, castig, expand, wb, prime2, virgule, b210
Despre programare dinamică: vedete, fbr, tgv, zeratul, rv, comun, retea, circuit, sumdif, copaci, drum, text, palind, joc, vikingi, rafturi, balaur, plimbare, party, pc, pioni, seif, iepuri, numere3, perm, ture, bilete, prop, ro, reduceri, cuburi, invest, cutie2, stalpi, nr2, judete, strict, auto2, tree, jobs, leaves, pstring, program, datorii, senzori, farfurii, joc1, barbie, ambigram, rlcs, cub1, bio, chimie1, otilia, pasune, remi, sir23, tren1, joc5, pachete, echipe, comb, agitatie, ivv, peste, pitici, pipe, shgraf, tabara1, stop, randuri, zidar, log, sant, produs, subsir, cover, bcast, emax, dist, mesaj1, imax, avere, asmax, raft, suma2, joc12, fni, nr4, join, transport, masina3, lsort, microvirus, fat, cafea, echipe1, anticip, bsir, diamant, petrom, evantai, spion, acolor, evo, bombo, lacusta, lant, team, pitici1, numere8, dep, stiva, subgeom, pviz, tir1, cabane, piramida1, mosia, cuvinte1, gaina, materom, sortari, turnuri, trans, politie, codul, dansatori, nkbiti, kperms, treegame, siruri2, 123, jucarii, bradut, joc15, expozitie, text3, ic, echilibru, kmax, stalpi1, gaz, triunghi2, v2d, cuiburi, mine, orientare, activ, secvbiti, kcons, pokemon, ubergraf, left, acerc, autostrazi, kdist, select, cazare, fluviu, telecomanda, parcela, pion, subs, suma4, sirmax, bdotcom, viena, sablon2, telecab, ikebana, radare, hacker, obstacole, robotel, centrala, verigi, cds, wg, minusk, radioactiv, enigma, jb, efect, maxviz, ripstick, progresii, maxtri, combcuv, blis, subsiruri, mijloc, probleme, unuzero, palindrom1, minerale, speed, zmax, spider, cntgcd, interclasare, bus, pariuri, riglef, fractii2, fall, arbsum, conuri, arbvalmax, procente, metrou
Software recomandat
surse trimise | ajutor