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

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


Timp maxim de executie/test:
0.2 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Fie C o multime de cuvinte, toate de o lungime fixa L.
Spunem ca un sir de caractere
S poate fi scris folosind multimea de cuvinte C, daca pentru orice caracter din S exista o secventa de L caractere din S, care este un cuvant din C si care contine caracterul respectiv.

Cerinta

Se da un sir de caractere S format numai din litere din alfabetul englez, in care marimea literelor alterneaza (Exemple: aBcDeF, AbCd).
Sa se determine o multime
C de cardinal minim care contine numai cuvinte de lungime 2, multime cu care poate fi scris sirul S.

Date de intrare

Pe prima linie a fisierului de intrare cuvinte.in se va gasi sirul S.

Date de iesire

Prima linie a fisierului cuvinte.out va contine un singur numar natural min reprezentand cardinalul minim al multimii C. Urmatoarele min linii vor contine cate un cuvant de lungime 2 din multimea C determinata. Cuvintele se vor afisa in ordine alfabetica.

Restrictii

Lungimea sirului S este mai mica sau egala cu 100 000
Se considera ca a < b < ... < z < A < B < ... < Z
C, fiind o multime, va fi formata numai din cuvinte distincte
Daca exista mai multe seturi de cardinal minim se va afisa acela care este minim lexicografic. Spunem ca un set A=(A1,A2...AN) de cuvinte este mai mic decat un set B=(B1,B2...BN)daca exista o pozitie 1 <= i <= N astfel incat A1=B1, A2=B2 ... Ai-1=Bi-1 si Ai<Bi.

Exemple

cuvinte.in

cuvinte.out

Explicatie

aAaAbAbAbBbB

3
aA
bA
bB

O alta solutie, mai mare din punct de vedere lexicografic, este:
aA
bB
Ab

pQpQ

1
pQ

 

LoL

2
oL
Lo

Mircea Paşoi
Universitatea Bucuresti, Facultatea de Matematica si Informatica
mircea@infoarena.ro

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2007: perechi, teanc, index, light, copaci, teren, pizza, grupe, cod, ecran, drum, soldati, factura, palma, decript, lbd, aven, cs, h, trenuri, sort, spam, complex, parent, holo, tren2, gray, siruri, arce, pasi, cifre, mgo, firma, joc, cartonase, vikingi, anagrame, balbe, vecini, balaur, tribile, conflicte, criptmat, mesaj, maxim, magic3, desen, plimbare, cutie, patrate, party, vagoane, robot, astre, trains, numere2, friends, tricouri, furtuna, net, baby, scaune, 3d, axa, bile2, vmem, pahare, termen, sablon, zapada, excursie, hd, pajura, pc, sir, cadere, pioni
De acelaşi autor: copaci, ab2, plimbare, pioni, reinvent, numere3, perm, criptare, sume, gramezi, nr2, rev, paintball, matricea, emax, turism, puncte1, casute, dep
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, conflicte, desen, robot, furtuna, net, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, arthur, kimberley, ro, sol, caravane, bete, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, atac2, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, trmv, graphgame, minuni, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
Despre cuplaj: joc4, algebra, felinar, atac2, site, graphgame, pack, terenuri3d
surse trimise | ajutor