Tajna Komisija vredno je radila na pripremi zadataka za Državno takmičenje i došlo je vreme da se zadaci pošalju na mesta održavanja takmičenja. Naravno, zadaci se čuvaju kao stroga tajna, pa se pre slanja šifruju dobro poznatim algoritmom nastalim u laboratorijama Tajne Komisije.
Algoritmom se šifruje tekst dužine N ∙ M na sledeći način: Matrica sa N redova i M kolona popunjava se slovima teksta red po red, odozgo na dole. Zatim se nekim kolonama u matrici zamene mesta. Formalno, ključ kojim se šifruje je jedna permutacija brojeva od 1 do M. Ključ predstavljamo nizom (a1, a2 ,... , aM), gde ai predstavlja novu poziciju i-te kolone u matrici. Nakon primene ključa, šifrat (šifrovani tekst) se čita iz matrice istim redosledom kojim je originalni tekst unet u matricu.
Međutim, članovi komisije su malo zaboravni i ne sećaju se ključa koji koriste za šifrovanje zadataka. Naravno, kako je Tajna Komisija veoma odgovorna, ranije je izrađen plan i za ovu situaciju. U tajnom sefu, koji se nalazi negde u zgradi Tajne Komisije (čija lokacija je takođe tajna), sačuvali su jedan tekst sa veoma bitnom osobinom - šifrovanjem tog teksta bilo kojim kljušem ne dobija se leksikografski veći šifrat od šifrata dobijenim šifrovanjem pomoću zaboravljenog ključa.
Ako vam je poznata matrica koja se šifruje i činjenica da se njenim šifrovanjem dobija leksikografski najveći mogući šifrat, odredite ključ.
Ulaz.
(Ulazni podaci se učitavaju sa standardnog ulaza) U ulaznoj datoteci se u prvom redu nalaze dva broja N i M(1 ≤ N, M ≤ 2.000), broj redova i broj kolona matrice koja se šifruje, respektivno. U sledećih N redova nalazi se po M malih slova engleske abecede, koja predstavljaju matricu koja se šifruje.
Izlaz.
(Izlazni podaci se ispisuju na standardni izlaz) U prvom i jedinom redu izlazne datoteke ispisati M brojeva razdvojenih razmakom, ključ kojim se šifruje matrica. Rešenje će biti jedinstveno.
Primer 1.
standardni ulaz | standardni izlaz | |
---|---|---|
4 3 kom isi jar ulz |
3 1 2 |
Objašnjenje. Primenom ključa 3 1 2 prva kolona se premešta na treću, druga kolona se premešta na prvu, a treća kolona se premešta na drugu poziciju. Čitanjem iz šifrovane matrice dobija se tekst omksiiarjlzu. Primenom bilo kog drugog ključa dobija se leksikografski manji šifrat.
Comments