Để đảm bảo thứ tự in xác định, cha tạo lần lượt từng con và wait() ngay sau mỗi con trước khi tạo con tiếp theo:
for (int i = 1; i <= k; i++) {
pid_t p = fork();
if (p == 0) { printf("%d\n", i); fflush(stdout); exit(0); }
wait(NULL); // cha cho con i xong moi tao con i+1
}
Vì cha wait() ngay, con i luôn in xong trước khi con i+1 được tạo → các dòng in ra theo đúng thứ tự 1, 2, ..., k.
Cho k, in các số từ 1 đến k, mỗi số một dòng (theo đúng thứ tự).
Ví dụ I/O: k = 3 → in 1, 2, 3 trên ba dòng.
Một số nguyên k.
0 <= k <= 1000
k dòng: các số 1, 2, ..., k theo thứ tự (con thứ i in i). Nếu k = 0 thì không in gì.
Ví dụ:
Đầu vào:
3
Đầu ra:
1
2
3
Giải thích:
Đang tải editor...