Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] Merkle root với số lá bất kỳ

    Merkle root khi số lá lẻ

    Khi một tầng của cây Merkle có số phần tử lẻ, băm cuối cùng được nhân đôi (ghép với chính nó) trước khi lên tầng trên — đúng như Bitcoin làm.

    Quy tắc còn lại giống bài Merkle cân đối: băm lá bằng SHA256(leaf), ghép cha bằng SHA256(left + right).

    Ví dụ

    Input:
    3
    a
    b
    c
    
    Output:
    p1 = SHA256(H(a)+H(b)); p2 = SHA256(H(c)+H(c)); root = SHA256(p1+p2)
    
    • Định dạng đầu vào:

      Dòng 1: N. N dòng tiếp theo: nội dung mỗi lá.

    • Ràng buộc đầu vào:

      1 <= N <= 1000. 0 <= len(leaf) <= 200.

    • Định dạng đầu ra:

      Một dòng: Merkle root (64 hex).

    Ví dụ:

    Đầu vào:

    3
    a
    b
    c
    

    Đầu ra:

    0bdf27bf7ec894ca7cadfe491ec1a3ece840f117989e8c5e9bd7086467bf6c38

    Giải thích:

    Tầng lá lẻ (3) nên nhân đôi H(c); root = SHA256(SHA256(H(a)+H(b))+SHA256(H(c)+H(c))).

    Đang tải editor...