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

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


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

Aşa cum ştim, lui Gigel îi place să se joace cu cifrele şi cu literele. De data asta a "inventat" o nouă metodă de criptare a mesajelor pe care vrea să le transmită prietenului său, Ionel. Metoda lui se bazează pe înlocuirea literelor alfabetului cu alte litere conform unei chei de criptare.
Astfel el stabileşte un cuvânt cheie, format din maxim 26 litere mari distincte.
Construieşte apoi un tabel cu 26 poziţii şi pune cuvântul cheie într-o poziţie oarecare k din tabel. Poziţia aceasta o numeşte poziţie cheie.
În continuarea cuvântului cheie pune, în ordine, literele alfabetului care nu apar în cuvântul cheie, având grijă ca atunci când a ajuns la poziţia 26 să continue cu poziţia 1 din tabel. Gigel obţine astfel cheia de criptare formată din 26 caractere. De exemplu, pentru cuvântul cheie IONESCU şi poziţia cheie k=9 în care acesta se pune în cheia de criptare se obţine:

Q R T V W X Y Z I O N E S C U A B D F G H J K L M P
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z

Acum codificarea este simplă. Fiecare literă din cheia de criptare corespunde unei litere din alfabet, deci Gigel ia fiecare literă a mesajului pe care vrea să-l transmită, o caută în alfabet şi o înlocuieşte cu litera corespunzătoare din cheia de criptare.

Cerinţă
Fiind dat cuvântul cheie, poziţia cheie în care acesta se pune în cheia de criptare şi un text criptat având mai multe linii, să se realizeze decriptarea textului respectiv.

Date de intrare
Fişierul de intrare mesaj.in conţine pe prima linie cuvântul cheie. Pe linia a doua se găseşte poziţia cheie. Următoarele linii conţin textul criptat, fiecare linie având maxim 255 caractere.

Date de ieşire
Fişierul de ieşire mesaj.out conţine textul decriptat, fiecare linie din text corespunzând liniei respective din mesajul criptat.

Restricţii şi precizări
- liniile textului au maxim 255 caractere
- textele sunt formate doar din litere mari ale alfabetului englez
- cuvântul cheie are maxim 26 litere
- poziţia cheie este un număr natural k, 1 <= k <= 26
- cheia de criptare are exact 26 caractere, litere mari ale alfabetului englez

Exemplu

mesaj.in mesaj.out

CAMPION
11
YPQSUDEQPOBUWQEYBUQOUSQMOYIPDUGQVQSUOBYPUGQAFQBUIPAYPU

INACESTANPREGATIREAPECAMPIONSEVAFACEPRINEVALUAREONLINE

 

prof. Marinel Şerban
Liceul de Informatică "Gr. C. Moisil" Iaşi
marinel_serban@yahoo.com

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, 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, cuvinte, excursie, hd, pajura, pc, sir, cadere, pioni
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, 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, concat, 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, 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, concat, 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
Chestionare recomandate
surse trimise | ajutor