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

    solution

    Đề bài: [C] Sinh viên xuất sắc — Top-K điểm cao nhất

    Phòng đào tạo cần lập danh sách Top-K sinh viên điểm cao nhất. Cho nnn sinh viên, mỗi sinh viên gồm tên (không khoảng trắng, ≤63 ký tự) và điểm số nguyên. Hãy cấp phát động một mảng struct SV* bằng malloc, dùng qsort để sắp giảm dần theo điểm (tie-break tăng theo tên theo strcmp), sau đó in KKK dòng đầu tiên (nếu K>nK > nK>n thì in tất cả).

    Ví dụ:

    5 3
    An 8
    Binh 9
    Cuong 7
    Dung 9
    Em 6
    

    Kết quả:

    Binh 9
    Dung 9
    An 8
    
    • Định dạng đầu vào:

      Dòng 1: nnn KKK. nnn dòng tiếp theo: tên điểm.

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

      1≤n≤1051 \le n \le 10^51≤n≤105, 1≤K≤1051 \le K \le 10^51≤K≤105, 0≤diem≤1000 \le diem \le 1000≤diem≤100.

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

      min⁡(K,n)\min(K, n)min(K,n) dòng, mỗi dòng tên điểm theo thứ tự đã sắp.

    Ví dụ:

    Đầu vào:

    5 3
    An 8
    Binh 9
    Cuong 7
    Dung 9
    Em 6
    

    Đầu ra:

    Binh 9
    Dung 9
    An 8

    Giải thích:

    Sắp giảm điểm: Binh 9, Dung 9 (tie-break tên), An 8 → lấy 3 dòng.

    Đang tải editor...