Cho danh sách liên kết đơn n phần tử và một giá trị X. Hãy sắp xếp lại danh sách sao cho mọi node có giá trị <X đứng trước mọi node có giá trị ≥X, đồng thời giữ nguyên thứ tự tương đối giữa các node trong cùng nhóm (stable partition).
Ví dụ: danh sách 1 → 4 → 3 → 2 → 5 → 2 với X=3 sẽ thành 1 → 2 → 2 → 4 → 3 → 5.
Gợi ý: tạo 2 danh sách phụ (less, ge) bằng malloc, sau đó nối lại.
Dòng 1: n và X. Dòng 2: n số nguyên.
0≤n≤105, ∣ai∣,∣X∣≤109.
Một dòng gồm n số sau khi phân hoạch (nếu n=0 in dòng trống).
Ví dụ:
Đầu vào:
6 3
1 4 3 2 5 2
Đầu ra:
1 2 2 4 3 5
Giải thích:
Đang tải editor...