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 double-spend

    Phát hiện chi tiêu kép

    Double-spend là khi cùng một UTXO bị dùng làm đầu vào cho hai giao dịch khác nhau — điều blockchain phải ngăn chặn. Cho danh sách giao dịch theo thứ tự, mỗi giao dịch tiêu một UTXO đầu vào:

    txid  input_utxo  output_addr
    

    Hãy tìm UTXO đầu tiên bị tiêu lần thứ hai (theo thứ tự xuất hiện). Nếu không có double-spend, in OK.

    Ví dụ

    Input:
    3
    t1 u1 Bob
    t2 u2 Carol
    t3 u1 Dave
    
    Output:
    u1
    
    • Định dạng đầu vào:

      Dòng 1: N. N dòng: 'txid input_utxo output_addr'.

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

      1 <= N <= 10^5; các trường không chứa khoảng trắng.

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

      Một dòng: id UTXO bị chi tiêu kép đầu tiên, hoặc OK.

    Ví dụ:

    Đầu vào:

    3
    t1 u1 Bob
    t2 u2 Carol
    t3 u1 Dave
    

    Đầu ra:

    u1

    Giải thích:

    u1 được tiêu ở t1 rồi lại ở t3 → double-spend u1.

    Đang tải editor...