Cho N tiến trình với thời điểm đến (arrival) và thời gian CPU (burst), lập lịch FCFS (theo arrival tăng dần; nếu trùng arrival thì theo ID tăng dần).
Trong FCFS, nếu khi một tiến trình hoàn thành mà tiến trình kế tiếp chưa đến, CPU phải nằm không (idle) cho tới khi tiến trình kế tiếp đến — đó là một khoảng trống (idle gap).
Thuật toán:
t = 0. Với mỗi tiến trình theo thứ tự: nếu t < arrival thì cộng (arrival − t) vào tổng idle và đặt t = arrival. Sau đó t += burst.In ra hai số cách nhau bởi dấu cách: tổng thời gian CPU nằm không (total idle), và thời điểm CPU kết thúc toàn bộ (makespan).
Ví dụ: arrival [0,5,6], burst [3,2,2]. P1: 0..3. Idle 3..5 (2 đv). P2:5..7. P3:7..9. Idle=2, makespan=9.
Dòng đầu N. N dòng tiếp, dòng i: arrival burst của tiến trình ID i.
1 ≤ N ≤ 100000; 0 ≤ arrival ≤ 10^9; 1 ≤ burst ≤ 10^6.
Hai số nguyên: tổng thời gian idle và makespan, cách nhau dấu cách.
Ví dụ:
Đầu vào:
3
0 3 5 2 6 2
Đầu ra:
2 9
Giải thích:
Đang tải editor...