Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [C] Sắp xếp tuổi nhân viên bằng Pigeonhole Sort

    Phòng nhân sự lưu tuổi của nnn nhân viên trong một mảng nguyên. Vì tuổi nằm trong khoảng hẹp, hãy sắp xếp tăng dần bằng thuật toán Pigeonhole Sort:

    1. Tìm minminmin và maxmaxmax trong mảng.
    2. Tạo max−min+1max - min + 1max−min+1 ngăn (pigeonhole), đếm số lần xuất hiện mỗi giá trị.
    3. Duyệt các ngăn theo thứ tự tăng, ghi giá trị ra mảng kết quả.

    Ví dụ: [8,3,2,7,4,6][8, 3, 2, 7, 4, 6][8,3,2,7,4,6] → [2,3,4,6,7,8][2, 3, 4, 6, 7, 8][2,3,4,6,7,8].

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

      Dòng 1: nnn. Dòng 2: nnn số nguyên.

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

      1≤n≤1051 \le n \le 10^51≤n≤105, −105≤ai≤105-10^5 \le a_i \le 10^5−105≤ai​≤105. Khoảng (max−min)≤2⋅105(max - min) \le 2 \cdot 10^5(max−min)≤2⋅105.

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

      Một dòng gồm nnn số đã sắp tăng dần, cách nhau bởi dấu cách.

    Ví dụ:

    Đầu vào:

    6
    8 3 2 7 4 6
    

    Đầu ra:

    2 3 4 6 7 8

    Giải thích:

    Ngăn 2..8 mỗi ngăn có 1 phần tử.

    Đang tải editor...