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] Phát hiện block bị sửa

    Tìm block bị chỉnh sửa

    Định dạng dữ liệu giống bài kiểm tra toàn vẹn: mỗi dòng là data|||prev_hash|||stored_hash. Hãy tìm chỉ số (index) của block sai đầu tiên — block mà băm tính lại không khớp stored_hash, hoặc prev_hash không trỏ đúng về băm của block trước (block 0 cần prev = 64 số 0).

    Nếu cả chuỗi hợp lệ, in -1.

    Ví dụ

    Input: chuỗi 3 block, block index 2 bị đổi data
    Output:
    2
    
    • Định dạng đầu vào:

      Dòng 1: N. N dòng: data|||prev_hash|||stored_hash.

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

      1 <= N <= 1000.

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

      Một dòng: index block sai đầu tiên, hoặc -1 nếu chuỗi hợp lệ.

    Ví dụ:

    Đầu vào:

    3
    Genesis|||0000000000000000000000000000000000000000000000000000000000000000|||d01184f3cd8548b1e5bc7695c3716b54623e11652e2101b1e71939962e535f2c
    tx1|||d01184f3cd8548b1e5bc7695c3716b54623e11652e2101b1e71939962e535f2c|||0435de26f2a36f74d4ca70525a44cc977e0d921fde379e966fd0d385606e7e02
    evil|||0435de26f2a36f74d4ca70525a44cc977e0d921fde379e966fd0d385606e7e02|||003574b923b0ca41c9121f12f86d22417b3279dbdc4df707715c270d3ce1153b
    

    Đầu ra:

    2

    Giải thích:

    Block 0,1 hợp lệ; block 2 bị đổi data nên băm không khớp → 2.

    Đang tải editor...