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] Dựng chuỗi block và lấy băm cuối

    Xây dựng một blockchain

    Cho danh sách dữ liệu của N block liên tiếp. Block đầu tiên (Genesis) có prev_hash gồm 64 số 0. Băm của mỗi block được tính:

    hash_i = SHA256(i + "|" + prev_hash + "|" + data_i)
    

    trong đó prev_hash của block i chính là hash_{i-1}. Hãy in ra băm của block cuối cùng — giá trị đại diện cho toàn bộ chuỗi.

    Ví dụ

    Input:
    2
    Genesis
    tx1
    
    Output:
    (băm của block index=1, nối với băm của block index=0)
    
    • Định dạng đầu vào:

      Dòng 1: số block N. N dòng tiếp theo: data của từng block (theo thứ tự index 0..N-1).

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

      1 <= N <= 1000; 0 <= len(data_i) <= 500.

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

      Một dòng: băm của block cuối cùng (64 hex).

    Ví dụ:

    Đầu vào:

    2
    Genesis
    tx1
    

    Đầu ra:

    0435de26f2a36f74d4ca70525a44cc977e0d921fde379e966fd0d385606e7e02

    Giải thích:

    Block0='0|000..0|Genesis', block1 dùng hash0 làm prev; in hash1.

    Đang tải editor...