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

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


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

Gigel este un elev îndrăgostit de jocuri. El se joacă cu numere, cu cuvinte, cu orice joc care îi solicită atenţia şi gândirea. Jucându-se cu nişte cuvinte el a observat următoarele.
Din lista de cuvinte scrise pe hârtie a selectat unul şi l-a considerat cuvânt de bază. A observat apoi că acest cuvânt se poate forma şi prin concatenarea unor cuvinte dintre cele rămase în ordinea în care ele sunt scrise pe hârtie. De exemplu luând cuvântul 'concatenare' ca şi cuvânt de bază şi lista de cuvinte ('campion', 'con', 'rest', 'cate', 'nare', 'n', 'pom', 'are', 'ea'), observă că luând şi concatenând cuvintele cu numărul de ordine 2, 4, 5 se obţine cuvântul de bază. Aceasta nu este însă singura soluţie deoarece şi secvenţa cuvintelor cu numerele de ordine 2, 4, 6, 8 produce acelaşi cuvânt. Problema pe care si-o pune Gigel este de a determina cât mai multe dintre cuvintele date care, prin concatenarea lor, formează cuvântul ales.

Cerinţă

Date fiind cuvântul de bază şi lista de cuvinte, să se determine numărul maxim de cuvinte care prin concatenarea lor în ordinea în care acestea sunt date vor forma cuvântul de bază dat.

Date de intrare

Fişierul de intrare concat.in conţine pe prima linie un singur cuvânt reprezentând cuvântul de bază. Linia a doua conţine un singur număr natural n reprezentând numărul de cuvinte din lista. Pe fiecare dintre următoarele n linii se găseşte câte un singur cuvânt din listă.

Date de ieşire

Fişierul de ieşire concat.out conţine pe prima linie un număr natural reprezentând numărul maxim de cuvinte din listă din care se poate forma cuvântul de bază prin concatenare. Linia a doua a fişierului de ieşire va conţine o secvenţă strict crescătoare de numere naturale, separate prin câte un spaţiu, reprezentând numerele de ordine ale cuvintelor din listă prin concatenarea cărora se obţine una dintre soluţiile cu număr maxim de cuvinte folosite. În cazul în care nu există nici o soluţie  fişierul de ieşire va conţine o singură linie pe care se va găsi valoarea 0.

Restricţii

  • Fiecare cuvant are maxim 100 caractere.
  • 1 <= n <= 100
  • Cuvintele sunt formate numai din litere mici ale alfabetului englez.

Exemplu

concat.in concat.out Explicaţii
concatenare
9
campion
con
rest
cate
nare
n
pom
are
ea
4
2 4 6 8

Soluţia maximă este formată din 4 cuvinte.
Cuvintele sunt con(2)+cate(4)+n(6)+are(8)

prof. Marinel Şerban
Liceul de Informatică „Grigore Moisil” Iaşi
marinel_serban@yahoo.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, graphgame, ic, echilibru, brazi, mat, cubinvers, mobil, distsir, parbit
De acelaşi autor: premii, finala, fractii, trei, manevre, nrcuv, an, vopsea, opmat, tramvai, bipal, kpal, sarpe, replace, factori, barca, perechi, grupe, cod, reactii, factura, decript, trenuri, holo, cifre, firma, tribile, mesaj, tricouri, pajura, monede, programs, fry, repeat, red, pavaj, bacan, nrbinar, invest, cutie2, loc, depou, nr3, zid, felinare, sir3, sqr, carte, labirint, stea, count, evaluare, super, schimb, zaruri, vectori, spirala, desen1, rima, ceas1, romane, sms, bac, excursia, joc7, furnici, munte1, cezar, marcare, excursie1, culmi, sume1, schi, nr4, fractie, cod3, medii, tren3, top, sant1, imagine, ocr, perfect, pluton, reforma, alee, ceas2, paritate, borcane, aranjare, comoara1, culmi1, reactivi, submult, sablon1, sir8, sume2, dansatori, smith, tom, matriosca, asociativ, control1, calorii, immortal, mat, cubinvers, mine, divizori, cheie, stelar, joct, minmax, cladire, adunscad, razboi, ore, oras1, sumprod, prisme, operatii1, lgdrum, unupatru, chibrituri, extraprime, prieten, rebus1, grindina, opmult, betisoare, antitero, clase, pagini, ornament, ordine, spioni1
Despre şiruri de caractere: scp, ab, sl, nrcuv, rv, kpal, chimie, reteta, replace, grad, index, cod, text, decript, spam, complex, cifre, anagrame, balbe, criptmat, mesaj, maxim, astre, sablon, formule, ed, balls, vocale, prop, bacan, novel, bitslang, text2, ref, scor2, convert, cod2, compress, pstring, sub, rima, program1, sms, circular, randuri, cezar, bifo, joc9, pal, bare, joc12, fractie, cod3, tunel, csir, top, ratina, cifru1, limbaj, adun, ecuatii, dir, paritate, virus, sir6, mesaj2, text1, sirul, ogorul, rez, sablon1, anag, sir8, seti, secvsir, dp, cuvant, strings, antipatie, fractie1, links, ordonare, text3, codif, cheie, alfabetar, cuvinte2, comp, litere, mxl, mesaj3, expresie2, grad2, antic, zuma, expeval, combcuv, lgdrum, subtitrare, compresie, zigzag, azeval, fraze, subsecvente, showroom, rebus1, agenda, opmult, betisoare, reziston, clase, vot2, ecp, smiley, charlie, cript, scadere, spioni1, sablon3, expand, culori3, virgule
Despre backtracking: acop, bipal, magic2, vagoane, friends, tricouri, festival, numar, pento, ro, jobs, onu2, sir3, cai1, labirint, dans, ham, sudoku, caramele, linie, puncte, castel, excursia, joc7, pattern, avere, paianjen, medii, monkey, scara1, numere8, banda1, spirala1, cofetar, gradina, placa, smin, jucarii, immortal, cubinvers, codif, izvor, avioane, jb, prisme, triburi1, genab, dineu, antitero, ornament, virgule
Chestionare recomandate
surse trimise | ajutor