Parolun axtarılması#1792

Parolun axtarılması

1 saniyə
128 meqabayt
Asan

İkinci Dünya Müharibəsi zamanı kodlaşdırılmış mesajlar göndərmək İttifaqçı qüvvələr üçün çox vacib idi. Mesajlar həmişə məlum bir parol ilə kodlaşdırıldıqdan sonra göndərilirdi. Sabit bir paroldan istifadə etmək təhlükəsiz deyildi, buna görə onu tez-tez dəyişdirmək lazım idi. Lakin, yeni parolun ötürülməsi üçün bir mexanizm lazım idi. Kriptoqrafiya komandasındakı riyaziyyatçılardan biri yeni parolu elə mesajın içində gizlətmək fikrini irəli sürdü. Maraqlı cəhət isə o idi ki, mesajı alan şəxsə yalnız parolun uzunluğunu bilmək kifayət edirdi və onu alınan mesajın içində axtarmaq lazım idi.

Uzunluğu olan parolu tapmaq üçün, mətndə ən çox rast gəlinən uzunluqlu altsətiri axtarmaq lazımdır. Parol tapıldıqdan sonra, parolla üst-üstə düşən bütün altsətirlər kodlaşdırılmış mesajdan silinir. Bundan sonra parol mesajı deşifrə etmək üçün istifadə oluna bilər.

Lakin sənin tapşırığın daha sadədir. Səndən yalnız parolun uzunluğu və kodlaşdırılmış mesaj verildikdə, yuxarıda təsvir edilən üsula uyğun olaraq parolu tapacaq proqram yazmaq tələb olunur.

Misal üçün, parol uzunluğu n = 3 və kodlaşdırılmış mesaj olduqda, parol olacaq, çünki bu, mətnə ən çox (2 dəfə) rast gəlinən uzunluqlu altsətirdir. Digər altsətir (, , , , ) isə yalnız bir dəfə rast gəlinir.

Giriş

Bir neçə test halı. Hər test bir sətrdən ibarətdir: parolun uzunluğu (0 < n \leq 10) və kodlaşdırılmış mesaj. Mesaj yalnız kiçik latın hərflərindən ibarətdir. Mesajın uzunluğu ən çox 10^6, ən azı isə -dir.

Çıxış

Hər test halı üçün tapılmış parolu ayrıca sətrdə çap et. Əgər birdən çox uyğun parol varsa, əlifba sırası ilə ən kiçiyini çap et.

Nümunələr

Nümunə 1

Loading
Loading

Nümunə 2

Loading
Loading