Gửi bài giải

Điểm: 1,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Adler-32 là một hàm băm (hash function) đơn giản, thường được sử dụng để kiểm tra tính toàn vẹn của dữ liệu trong các hệ thống truyền tải dữ liệu và tập tin.

Hàm băm Adler-32 được định nghĩa như sau:

unsigned long adler32(char *data) {
    const unsigned long MOD_ADLER = 65521;
    unsigned long a = 1, b = 0;
    for (int i = 0; data[i] != '\0'; i++) {
        a = (a + (unsigned char)data[i]) % MOD_ADLER;
        b = (b + a) % MOD_ADLER;
    }
    return (b << 16) | a;
}

INPUT

  • Dòng 1: Số nguyên dương ~n~.
  • ~n~ dòng tiếp theo, mỗi dòng là một chuỗi ký tự có độ dài không quá 100 và không chứa khoảng trắng.

OUTPUT

  • In ra một dòng chứa ~n~ giá trị băm Adler-32 tương ứng với mỗi chuỗi, cách nhau bởi dấu cách.

CONSTRAINTS

  • ~0 < n \leq 70~

Input

4
toi
khong
biet
gi

Output

44433741 105644568 67436965 20512977

Bình luận

Hãy đọc nội quy trước khi bình luận.


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

Input
Output
Run