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

Đề bài

Mô tả

Một thông điệp là một dãy n số nguyên a1,a2,,an. Việc mã hóa sử dụng một khóa là dãy m số nguyên b1,b2,,bm (với mn). Mọi số trong thông điệp và trong khóa đều thuộc đoạn từ 0 đến c1, và mọi phép tính đều được thực hiện theo modulo c.

Quá trình mã hóa gồm nm+1 bước. Ở bước thứ i (với i chạy từ 1 đến nm+1), ta cộng vào mỗi số ai,ai+1,,ai+m1 (là giá trị hiện tại sau các bước trước) lần lượt các số b1,b2,,bm. Tức là với mọi k từ 1 đến m, giá trị ai+k1 được cộng thêm bk (theo modulo c).

Kết quả mã hóa là dãy a1,a2,,an sau khi thực hiện đủ nm+1 bước.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, c.
  • Dòng thứ hai chứa n số nguyên ai (0ai<c), là thông điệp ban đầu.
  • Dòng thứ ba chứa m số nguyên bi (0bi<c), là khóa mã hóa.

Dữ liệu ra

In ra n số nguyên cách nhau bởi dấu cách, là kết quả mã hóa thông điệp.

Ràng buộc

  • 1mn105
  • 1c103

Ví dụ

Input Output Giải thích
4 3 2
1 1 1 1
1 1 1
0 1 1 0 2 bước. Sau bước 1: a=(0,0,0,1) (tính theo modulo 2). Sau bước 2: a=(0,1,1,0).
3 1 5
1 2 3
4
0 1 2 m=1 nên có 3 bước, mỗi bước cộng 4 vào một phần tử: (1+4,2+4,3+4)mod5=(0,1,2).

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0