Bài toán tuyển nhân viên:

H

hai6f2009

[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Bài 2. Tuyển nhân viên (6 điểm).
Công ty phần mềm máy tính A có số lượng nhận viên rất lớn. Để tiện việc quản lý, công ty đã cấp cho mỗi nhân viên một mã số, mã số của mỗi nhân viên là một số nguyên dương, hai nhân viên bất kì thì có mã số khác nhau. Tuy nhiên, sau một thời gian thì một số nhân viên đã nghỉ hưu hoặc chuyển công tác, nên công ty phải tiến hành tuyển thêm k nhân viên mới. Các nhân viên mới này sau khi được tuyển vào cũng sẽ được cấp mã số, mỗi nhân viên một mã số và số này cũng là một số nguyên dương không trùng với nhân viên nào khác.
Yêu cầu : Với n nhân viên hiện có (còn lại) của công ty tương ứng với mã số là a1, a2,…, an. Hãy tìm k mã số nhỏ nhất để cấp cho k nhân viên mới tuyển vào sao cho vẫn thỏa mãn hai nhân viên bất kì (cả nhân viên cũ và mới) có mã số khác nhau.
Dữ liệu vào từ file ‘RECRUIT.INP’ có nội dung như sau :
· Dòng đầu chứa hai số nguyên dương lần lượt và n và k (n ≤ 106 ; k ≤ n).
· n dòng tiếp theo, dòng thứ i là số nguyên dương ai (i=1, 2, ..., n; ai ≤ 2*109).
Kết quả ghi vào file ‘RECRUIT.OUT’ k mã số theo thứ tự từ nhỏ đến lơn (mỗi mã số trên một dòng).
Ví dụ :
RECRUIT.INP
5 3
3
1
6
9
8
RECRUIT.OUT
2
4
5
 
T

thienvamai

Dùng mảng đánh dấu các số đã sử dụng, sau đó chạy từ 1 tìm các số chưa đuợc đánh dấu in ra, đến khi nào in đủ k số thì thôi :3
 
Top Bottom