TAKMIČENJA IZ PROGRAMIRANJA


Sva pitanja, predloge ili primedbe u vezi sa takmičenjima iz programiranja možete slati na e-mail:

tak.prog@gmail.com

U toku perioda za žalbe, sve žalbe možete slati na ovaj isti e-mail.

sef.checker.pas    1,687 b      program za testiranje
sef.tests.rar    15,220 b      test primeri

zadatak: Sef

Zadaci za savezno takmičenje iz informatike čuvaju se u sefu visoke sigurnosti. Sef može da ima više šifara za otvaranje, od kojih je svaka niz sastavljen od malih slova engleskog alfabeta. Kako organizatori takmičenja nemaju poverenja jedni u druge, svako od njih je dobio da čuva samo delimičnu informaciju o šiframa, i šifre se mogu rekonstruisati tek kada se svi organizatori skupe zajedno.

Svaki organizator je dobio šemu koja je niz sastavljen od slova ("a".."z"), upitnika ("?") i zvezdica ("*"). Pojava nekog slova u šemi odgovara pojavi istog tog slova u šiframa. Pojava upitnika u šemi zamenjuje proizvoljno slovo u šiframa, a pojava zvezdice u šemi zamenjuje proizvoljan broj slova (uključujući i nula) u šiframa. Šeme date organizatorima su takve da se slažu sa svakom od šifara

Neposredno pred početak takmičenja organizatori su se okupili da otvore sef, međutim pošto su previše uzbuđeni zbog početka takmičenja, to im nikako ne polazi za rukom. Zato su zamolili smirene takmičare da im pomognu da pronađu neku od šifara sa najmanjim mogućim brojem slova, kako bi takmičenje počelo sa što manjim zakašnjenjem.

Ulaz:

Dato vam je 10 ulaznih fajlova sa imenima sef.nn.in gde je nn broj test primera (01, 02, ..., 10) .

U prvom redu ulaznog fajla zapisan je broj m - broj organizatora. U svakom od narednih m redova zapisana je najpre dužina šeme m-tog organizatora, potom tačno jedan razmak, i na kraju šema zapisana bez razmaka među znakovima.

Izlaz:

Za dati ulazni fajl sef.nn.in napraviti izlazni fajl u čiji prvi red treba zapisati "# sef, nn" (bez navodnika) gde umesto nn treba zapisati broj test primera. U drugi red upisati dužinu najkraće šifre, a u treći bilo koju najkraću šifru.

Primer:

ulaz (sef.00.in)          izlaz
3
4 ?a*b
4 a*b*
5 *a?a*
    
# sef, 00
5
aacab