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 loại mã

    Phát hiện mã đơn bảng hay đa bảng

    Mã thay thế đơn bảng (Caesar, Atbash, substitution) giữ nguyên phân phối tần suất nên IC cao (~0.065). Mã đa bảng (Vigenère) làm phẳng phân phối nên IC thấp (~0.04).

    • n < 2: in UNKNOWN.
    • IC ≥ 0.058: in MONOALPHABETIC.
    • ngược lại: in POLYALPHABETIC.

    Ví dụ

    Input:  Wkh txlfn eurzq ira mxpsv ...
    Output: MONOALPHABETIC
    
    • Định dạng đầu vào:

      Bản mã trên stdin.

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

      0 ≤ độ dài ≤ 100000.

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

      Một dòng: MONOALPHABETIC, POLYALPHABETIC, hoặc UNKNOWN.

    Ví dụ:

    Đầu vào:

    wkh txlfn eurzq ira mxpsv ryhu wkh odcb grj dqg wkh fdw vdw rq wkh pdw
    

    Đầu ra:

    POLYALPHABETIC

    Giải thích:

    Caesar (đơn bảng) giữ IC cao ≥ 0.058 → MONOALPHABETIC.

    Đang tải editor...