Bài 7.3. Mô Phỏng Đèn Giao Thông - [Độ khó: Khá]
Bài 7.3. Mô Phỏng Đèn Giao Thông - [Độ khó: Khá]
Mô tả bài tập: Bạn được giao nhiệm vụ phát triển một mô phỏng đơn giản cho hệ thống đèn giao thông tại một ngã tư. Đèn giao thông có ba trạng thái: Xanh (Green), Vàng (Yellow), và Đỏ (Red). Chu trình hoạt động của đèn là Xanh -> Vàng -> Đỏ -> Xanh...
Mỗi trạng thái có một khoảng thời gian nhất định. Tuy nhiên, có một trường hợp đặc biệt: nếu có xe cứu hỏa yêu cầu ưu tiên, đèn giao thông phải chuyển ngay lập tức sang trạng thái Đỏ và duy trì trạng thái đó trong một khoảng thời gian nhất định (t_cuu_hoa
). Sau khi hết thời gian này, đèn sẽ bắt đầu lại chu trình bình thường từ trạng thái Xanh.
Bạn hãy viết chương trình mô phỏng hoạt động của đèn giao thông trong một khoảng thời gian T
giây.
INPUT FORMAT
Dữ liệu đầu vào gồm ba dòng:
- Dòng 1: Ba số nguyên
t_green
,t_yellow
,t_red
(1 <=t_green
,t_yellow
,t_red
<= 60) - Thời gian đèn Xanh, Vàng, Đỏ tồn tại (tính bằng giây). - Dòng 2: Một số nguyên
thoi_gian_tong_cong_T
(1 <=thoi_gian_tong_cong_T
<= 3600) - Tổng thời gian mô phỏng (tính bằng giây). - Dòng 3: Hai số nguyên
thoi_diem_xuat_hien_cuu_hoa
(0 <=thoi_diem_xuat_hien_cuu_hoa
<thoi_gian_tong_cong_T
hoặc -1 nếu không có xe cứu hỏa) vàt_cuu_hoa
(1 <=t_cuu_hoa
<= 60) - Thời điểm xe cứu hỏa xuất hiện (tính bằng giây từ lúc bắt đầu mô phỏng) và thời gian đèn đỏ duy trì khi có xe cứu hỏa. Nếuthoi_diem_xuat_hien_cuu_hoa
là -1,t_cuu_hoa
sẽ là 0 (hoặc bất kỳ giá trị nào không quan trọng).
OUTPUT FORMAT
In ra trạng thái của đèn (Green, Yellow, Red) tại mỗi giây từ 0 đến thoi_gian_tong_cong_T - 1
. Mỗi trạng thái trên một dòng.
Ví dụ:
Input:
5 2 4
15
-1 0
Output:
Green
Green
Green
Green
Green
Yellow
Yellow
Red
Red
Red
Red
Green
Green
Green
Green
Giải thích:
- Thời gian đèn Xanh: 5s, Vàng: 2s, Đỏ: 4s. Tổng chu kỳ:
5+2+4 = 11s
. - Tổng thời gian mô phỏng: 15s.
- Không có xe cứu hỏa (
-1 0
). - Giây 0-4 (5s): Green.
- Giây 5-6 (2s): Yellow.
- Giây 7-10 (4s): Red.
- Giây 11-14 (bắt đầu chu kỳ mới, 4s): Green. Chương trình in ra trạng thái cho mỗi giây từ 0 đến 14.
Ví dụ 2 (Có xe cứu hỏa):
Input:
3 1 2
10
4 3
Output:
Green
Green
Green
Yellow
Red
Red
Red
Green
Green
Yellow
Giải thích:
- Thời gian đèn Xanh: 3s, Vàng: 1s, Đỏ: 2s. Tổng chu kỳ:
3+1+2 = 6s
. - Tổng thời gian mô phỏng: 10s.
- Xe cứu hỏa xuất hiện tại giây thứ 4, duy trì đèn đỏ 3s.
- Giây 0-2 (3s): Green.
- Giây 3 (1s): Yellow.
- Giây 4: Xe cứu hỏa xuất hiện. Đèn đang ở trạng thái Yellow, nhưng ngay lập tức chuyển sang Red. Duy trì Red trong 3s.
- Giây 4: Red (bắt đầu của ưu tiên xe cứu hỏa)
- Giây 5: Red
- Giây 6: Red (kết thúc ưu tiên xe cứu hỏa)
- Giây 7: Sau khi hết thời gian ưu tiên xe cứu hỏa, đèn bắt đầu lại chu trình bình thường từ trạng thái Xanh.
- Giây 7: Green
- Giây 8: Green
- Giây 9: Yellow (hết 3s Green, sang Yellow)
- Tổng cộng 10 giây mô phỏng (từ giây 0 đến giây 9).
Comments