Mã hóa thông điệp


Submit solution

Points: 10 (partial)
Time limit: 1.0s
Memory limit: 125M

Author:
Problem type

Có một ngày, Anh Hiếu nhận được một thông điệp bí ẩn. Anh biết rằng thông điệp này đã bị mã hóa bằng phương pháp mà chỉ những ai thân quen với Anh Hiếu mới có thể giải mã. Thông điệp được mã hóa bởi phương pháp như sau:

\(E(x) = (a \times x + b) mod\) \(m\)

Trong đó:

  • \(x\) là chỉ số của từng ký tự trong bảng chữ cái.
  • \(a\) và \(b\) là các tham số mã hóa mà chỉ có Anh Hiếu và những người thân thiết mới biết.
  • \(m\) là \(26\) vì bảng chữ cái tiếng Anh có đúng \(26\) ký tự.

Ví dụ thông điệp là từ love với phương pháp mã hóa trên giả sử ta dùng dùng tham số \(a = 5\) và \(b = 8\):

Chuyển các kí tự thành số: \(l = 11, o = 14, v = 21, e = 4\)

Áp dụng công thức:

  • \(E(x) = (5 \times x + 8) mod\) \(26\)
  • \(l: E(11) = 11 (l)\)
  • \(o: E(14) = 0 (a)\)
  • \(v: E(21) = 9 (j)\)
  • \(e: E(4) = 2 (c)\)

Vậy chúng ta được từ lajc là từ đã được mã hóa.

Yêu cầu: Vì bạn là người thân của anh Hiếu nên hãy viết chương trình nhận chuỗi đã mã hóa cùng với hai tham số \(a\) và \(b\) sau đó tiến hành giải mã.

INPUT FORMAT

  • Một dòng chứa chuỗi ký tự đã được mã hóa bằng phương pháp nói trên (chuỗi không có khoảng trắng và thuộc bảng chữ cái tiếng anh viết thường).
  • Hai số nguyên dương \(a\) và \(b\), lần lượt là các tham số, thỏa mãn điều kiện gcd(a, 26) = 1.

OUTPUT FORMAT

  • Một dòng chứa chuỗi đã giải mã.

Ví dụ 1:

Input
lajc
5 8
Output
love

Ví dụ 2:

Input
hellraeuc
5 8
Output
fullhouse


Lời giải bài tập này: Tại đây

Group giải đáp thắc mắc: Lập trình 24h

Fanpage CLB: CLB lập trình Full House- Việt Nam

Youtube: CLB Lập Trình Full House


Comments

There are no comments at the moment.