B. Khoảng cách tối thiểu (DISTANCE)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: Trình chấm ngoài

Đề bài

Cho một trục tọa độ số nguyên một chiều. Ban đầu, tồn tại một tập hợp nguồn S gồm n điểm đã được chiếm giữ tại các vị trí x_1, x_2, \dots, x_n . Các giá trị này đôi một khác nhau.

Bạn cần xác định một tập hợp đích T gồm m điểm nguyên mới tại các vị trí y_1, y_2, \dots, y_m sao cho thỏa mãn các điều kiện ràng buộc sau:

  1. Các vị trí trong tập T phải đôi một khác nhau.
  2. Các vị trí trong tập T không được trùng với bất kỳ vị trí nào trong tập S (tức là S \cap T = \emptyset ).
  3. Giá trị của hàm mục tiêu F = \sum\limits_{j=1}^{m} d(y_j, S) là nhỏ nhất có thể, trong đó d(y_j, S) = \min\limits_{i=1}^{n} |y_j - x_i| là khoảng cách Euclide từ điểm y_j tới điểm gần nhất thuộc tập nguồn S .

Hãy tìm giá trị nhỏ nhất của F và liệt kê các tọa độ trong tập hợp T tương ứng.

Dữ liệu:

  • Dòng đầu tiên chứa hai số nguyên n m ( 1 \le n, m \le 2 \cdot 10^5 ) — số lượng phần tử của tập nguồn và số lượng phần tử cần tìm của tập đích.
  • Dòng thứ hai chứa n số nguyên x_1, x_2, \dots, x_n ( -10^9 \le x_i \le 10^9 ) — tọa độ các điểm thuộc tập nguồn S . Đảm bảo các giá trị x_i là phân biệt.

Kết quả:

  • Dòng đầu tiên in ra một số nguyên — giá trị nhỏ nhất tìm được của tổng khoảng cách \sum\limits_{j=1}^{m}\min\limits_{i=1}^{n}|x_i - y_j| .
  • Dòng thứ hai in ra m số nguyên y_1, y_2, \dots, y_m ( -2 \cdot 10^9 \le y_j \le 2 \cdot 10^9 ) — tọa độ các điểm thuộc tập đích T . Các giá trị y_j phải phân biệt với nhau và phân biệt với mọi x_i .
  • Nếu có nhiều bộ nghiệm thỏa mãn giá trị tối ưu, in ra bất kỳ bộ nghiệm nào.

Ví dụ:

Dữ liệu:

2 6
1 5

Kết quả:

8
-1 2 6 4 0 3

Dữ liệu:

3 5
0 3 1

Kết quả:

7
5 -2 4 -1 2

Giới hạn:

  • Subtask #1 (20% số điểm): n, m \le 10 |x_i| \le 100 .
  • Subtask #2 (30% số điểm): n, m \le 3000 |x_i| \le 10^9 .
  • Subtask #3 (20% số điểm): n, m \le 2 \cdot 10^5 |x_i| \le 10^6 .
  • Subtask #4 (30% số điểm): n, m \le 2 \cdot 10^5 |x_i| \le 10^9 .