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

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


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

Gigel şi Vasilică imaginează un mod de a transmite mesaje pe care nimeni să nu le poată descifra.
Mesajul este ascuns într-un text care are N linii şi pe fiecare linie sunt exact N caractere – litere mari ale alfabetului englez, cifre, semne de punctuaţie şi caracterul spaţiu.
Decodificarea se face cu ajutorul unui şablon, de aceleaşi dimensiuni ca şi textul, care are câteva găuri. Suprapunând şablonul peste text rămân vizibile câteva caractere. Acestea se citesc în ordinea liniilor, de sus în jos, iar pe aceeaşi linie de la stânga la dreapta. Apoi hârtia cu textul se roteşte spre stânga, în sens trigonometric, cu 90 grade, şablonul rămânând fix. Alte caractere devin vizibile şi acestea se citesc în acelaşi mod. Operaţia se repetă de încă două ori (rotire cu 180 grade, respectiv cu 270 grade), până când textul ajunge, printr-o nouă rotaţie cu 90 grade, din nou în poziţia iniţială.
Din păcate, şablonul pentru codificare/decodificare s-a pierdut. În schimb a rămas la Gigel mesajul iniţial iar la Vasilică a ajuns textul care conţine mesajul.

Cerinţă

Să se reconstituie şablonul care a fost folosit la codificare.

Date de intrare

Fişierul de intrare sablon1.in conţine pe prima linie, mesajul iniţial. Pe linia a doua a fişierului de intrare se găseşte valoarea N. Următoarele N linii conţin textul care ascunde mesajul.

Date de ieşire

Fişierul de ieşire sablon1.out conţine N linii a câte N caractere. Caracterele sunt ’O’ (pentru reprezentarea unei găuri) şi ’X’.

Restricţii

• Prin rotirea textului nici una din găuri nu se va suprapune peste nici una din poziţiile ocupate de o gaură în poziţiile precedente ale textului
1 <= N <= 50
• Mesajul are maxim 1000 caractere şi se încheie cu un caracter diferit de spaţiu
• In cazul în care există mai multe soluţii, afişaţi una dintre ele.

Exemple

sablon1.insablon1.out
CODIFICARE CU SABLON 10 ABCDCEFAGH IJOKLEMNOP DQRSTUVWCX YZAIBCRDEF GFHIJKLMNI AJKLMNOPSQ RSTOUV WXY ZBABCDEFGU HIJKNLMCNO PQLRS TUVW XXXXOXXXXX XXOXXXXXXX OXXXXXXXXX XXXOXXXXXX XOXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX XXXXXXXXXX

autor: Prof. Marinel Şerban
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la ONI 2004: cuvinte1, gaina, materom, puncte3, rez, sortari, base3, coach, color, magic5, patrate6, turnuri, invsort, peri, trans, politie, sea, poligon3, sir7, poligon2, logic, coduri, snipers, submdisj, v, jetoane, prodmax, printesa, palindrom, reziston
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, 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, 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, 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
Despre matrice: vopsea, harta, opmat, sarpe, light, magic2, tetris, origami, concurs, iepuras, tribile, criptmat, cutie, patrate, 3d, pajura, perspic, vecini2, livada, matrice3, kafka, erdos, grup, scor2, reteta2, rezervatie, scoici, tablou, game, stea, submatrix, cifru, jokes, oua, trecere, na, dotnet, renju, ghici, mere1, agitatie, lacuri, sotron, desen1, camion, ceas1, fibo, parc, excursia, matricea, zidar, joc6, log, concurs2, cladiri, dist, centru, robinson, cuburi2, joc8, joc9, romeo, adevar, soricel2, avere, joc11, vizibil, sah1, blockout, masina3, lsort, anticip, matrice1, evantai, spion, pereti, zumzi, roboti, placare, tabel, ocr, numere7, lacusta, becuri, sir5, flori, cartele, furnica, pavare, poarta, rj, peri, poligon2, gradina, matrice4, poartas, balcon, submdisj, v, matrx, figura, neuroni, raze, roboti1, bila, iepurasi, colorare, mat, submatrix1, simetric1, plaja, xor2, guess, albine1, joct, alfabetar, stele, tablou1, alpinist, cladire, cri, grupe2, el, mahjong, sir9, acces, tort1, joc17, mesaj3, zar1, xy, poteci, avioane, broscute, safeu, acoperire1, radioactiv, robot4, lcdr, jb, slide, maxtri, dame, triunghi4, elicop, compresie, mijloc, cubulete, romb, medalion, bile6, zigzag, puncte5, intersectii, matd3, matrixdel, speed, seif1, traseu2, incadrare, betasah, zona, latin, zmax, amestec, sudoku1, gradina1, spider, zone, bemo, rombul, interclasare, rebus1, tabla, arrows, pseudobil, patrat1, rascoala, harta2, relatii, lasere, defrag, matcnt, ssdj, cript, ssk, teren1, fence, cifre6
Chestionare recomandate
surse trimise | ajutor