Heş-funksiya sındırılması#1797

Heş-funksiya sındırılması

2 saniyə
64 meqabayt
Çox asan

Bəzi məlumatların qorunması məsələlərində "heş-funksiya" adlanan funksiyalar istifadə olunur. Bu funksiyaların ən vacib siniflərindən biri "polinomial heş-funksiya"lardır.

Tutaq ki, S = s_1 s_2 \ldots s_l rəqəmlərdən ibarət olan, ilə arasında olan bir sıra verilib. O zaman "polinomial heş-funksiya"nın p(S, x, m) dəyəri aşağıdakı kimi hesablanır:

(a \mod b ifadəsi ədədinin ədədinə bölünməsindən qalanı göstərir). Məsələn, tutaq ki, S = 0123, o zaman p(S, 2, 5) = (0 \cdot 1 + 1 \cdot 2 + 2 \cdot 4 + 3 \cdot 8) \mod 5 = 4.

Heş-funksiya tətbiq üsullarından biri də parolların saxlanılmasıdır. Tez-tez belə olur ki, parolları qorunmayan verilənlər bazasında saxlamaq lazım gəlir, buna görə də onların əvəzinə heş-funksiya dəyərləri saxlanılır. Parol yoxlanarkən daxil edilmiş sıranın heş-funksiya dəyəri hesablanır və verilənlər bazasında saxlanılan dəyərlə müqayisə edilir.

Sizin vəzifəniz: verilmiş , , , və ədədlərinə görə ilə arasında rəqəmlərdən ibarət uzunluğu olan sıranı tapmaqdır ki, onun polinomial heş-funksiya dəyəri p(S, x, m) -ə bərabər olsun.

Giriş

Girişdə dörd tam ədəd verilir: ( — sadə ədəd, 5 \leq x \leq 100), ( — ikinin qüvvətidir, 1 \leq m \leq 256), (10 \leq L \leq 100), və (0 \leq v \leq m-1).

Çıxış

Axtarılan sıranı və ya **NO SOLUTION** yazın, əgər belə bir sıra mövcud deyilsə.

Nümunələr

Nümunə 1

Loading
Loading