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] Tổng cung sau N block (có halving)

    Tổng lượng coin đã phát hành

    Phần thưởng ban đầu là initial satoshi và giảm một nửa sau mỗi interval block. Với block chỉ số b (0-based), phần thưởng là:

    reward(b) = initial >> (b // interval)     # dịch phải = chia đôi
    

    Hãy tính tổng cung — tổng phần thưởng của N block đầu tiên (b = 0 .. N-1).

    Ví dụ

    Input:
    4
    100
    2
    
    Output:
    300
    

    (block 0,1 mỗi block 100; block 2,3 mỗi block 50 → 100+100+50+50 = 300)

    • Định dạng đầu vào:

      Ba dòng: N (số block), initial (satoshi), interval (chu kỳ halving).

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

      1 <= N <= 10^5; 0 <= initial <= 10^12; 1 <= interval <= 10^5.

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

      Một dòng: tổng cung (satoshi).

    Ví dụ:

    Đầu vào:

    4
    100
    2
    

    Đầu ra:

    300

    Giải thích:

    Block 0,1 = 100; block 2,3 = 50 → tổng 300.

    Đang tải editor...