Một công ty có n nhân viên Đã tới cuối tháng người chủ nhận thấy tháng này


Sách bài tập Tin học 11 Bài 9: Lập trình sắp xếp nhanh - Cánh diều

Câu Fcs40 trang 61 SBT Tin học 11: Một công ty có n nhân viên. Đã tới cuối tháng, người chủ nhận thấy tháng này có khá nhiều nhân viên vắng làm. Ông đã kiểm tra danh sách chấm công và biết được số ngày mỗi nhân viên đã đi làm trong tháng. Sau đó là danh sách xin nghỉ phép gồm m dòng.

Hãy lập trình để xác định xem có bao nhiêu nhân viên vắng không phép và liệt kê ra các nhân viên đó theo thứ tự số buổi vắng không phép giảm dần.

Dữ liệu: Nhập từ thiết bị vào chuẩn:

• Dòng đầu tiên chứa hai số nguyên dương n, m.

• Dòng thứ hai chứa n số nguyên b[i] là số ngày đi làm của nhân viên có số hiệu là i (các nhân viên được đánh số 1, 2, 3,..., ).

m dòng cuối cùng, mỗi dòng chứa thông tin dưới dạng “a d” tức là người a xin nghỉ phép vào ngày d (1 <aŚn, 1<d<30) (giả sử tháng đang hỏi có 30 ngày). Dữ liệu vào đảm bảo trong cùng một ngày, mỗi nhân viên chỉ xin phép tối đa một lần.

Kết quả: Hiển thị ở thiết bị ra chuẩn:

• Dòng đầu chứa số lượng nhân viên đã vắng không phép.

• Dòng thứ hai chứa các chỉ số của các nhân viên vắng (được sắp xếp theo số lượng buổi vắng không phép giảm dần).

Một công ty có n nhân viên Đã tới cuối tháng người chủ nhận thấy tháng này

Lời giải:

- Trước tiên, cần phải tính số ngày nghỉ không phép, rồi sau đó ta thực hiện sắp xếp sau.

Số ngày nghỉ chính là 30 trừ cho số ngày đi làm. Sau đó với mỗi lần xin phép, em trừ đi, như vậy sẽ có được số ngày vắng không phép.

- Vì cần in ra số hiệu của các nhân viên nên em sắp xếp trên chỉ số thứ tự, thay vì sắp xếp trên giá trị.

Một công ty có n nhân viên Đã tới cuối tháng người chủ nhận thấy tháng này

Lời giải SBT Tin 11 Bài 9: Lập trình sắp xếp nhanh hay khác:

Xem thêm các bài giải sách bài tập Tin học lớp 11 Cánh diều hay, chi tiết khác: