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

    solution

    Đề bài: [Java] Top-K phần tử lớn nhất song song

    Cho mảng N số nguyên và một số K (K ≤ N). Chia mảng thành P block (P=4). Mỗi block do một Callable<int[]> trả về top-K phần tử lớn nhất trong block đó (sort giảm dần). Dùng invokeAll lấy P mảng top-K. Gom tất cả các mảng top-K rồi sort GIẢM DẦN và in K phần tử lớn nhất, cách nhau bởi dấu cách.

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

      Dòng 1: N K (1 ≤ K ≤ N ≤ 10^4). Dòng 2: N số nguyên |a_i| ≤ 10^6. Nếu một block có < K phần tử thì chỉ trả về các phần tử có sẵn.

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

      1 ≤ K ≤ N ≤ 10^4; P=4 cố định

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

      Một dòng K số nguyên lớn nhất sort GIẢM DẦN, cách nhau bởi dấu cách.

    Ví dụ:

    Đầu vào:

    8 3
    5 1 9 3 7 2 8 4
    

    Đầu ra:

    9 8 7

    Giải thích:

    Chia 4 block size=2: [5,1],[9,3],[7,2],[8,4]. Top-K từng block: [5,1],[9,3],[7,2],[8,4]. Gom rồi sort giảm dần: 9,8,7,5,4,3,2,1 → lấy 3 đầu: 9 8 7.

    Đang tải editor...