Thứ Tư, 11 tháng 6, 2025

Giải bài Đồng hồ (đề thi tin học trẻ toàn quốc bảng A năm 23-24 , vòng khu vực)

Đề bài

Đang update

Nguồn tham khảo:

Gói luyện giải đề Tin học trẻ toàn quốc bảng A (Python)

giải

1.    Liệt kê các thời điểm đặc biệt trong ngày:

o   Một thời điểm đặc biệt có dạng hh:mm:ss sao cho 6 chữ số của nó khác nhau.

o   Duyệt từ 00:00:00 đến 23:59:59 (tối đa 86400 giây) để tìm tất cả các thời điểm đặc biệt hợp lệ.

2.    Tìm thời điểm gần nhất với N giây:

o   So sánh từng thời điểm đặc biệt với N để tìm khoảng cách nhỏ nhất.

o   Nếu có thời điểm đặc biệt trùng với N, trả về 0 ngay lập tức.

o   Nếu không, tìm thời điểm có khoảng cách nhỏ nhất.

code py

def la_dacbiet(h, m, s):
    cs = {h // 10, h % 10, m // 10, m % 10, s // 10, s % 10}
    return len(cs) == 6 # Nếu có đúng 6 chữ số khác nhau thì hợp lệ

def tim_gan_nhat(n):
    best_kc = 86400 # Khoảng cách tốt nhất ban đầu
    best_tg = -1 # Thời điểm đặc biệt tốt nhất
    for h in range(24):
        for m in range(60):
            for s in range(60):
                if la_dacbiet(h, m, s):
                    tg = h * 3600 + m * 60 + s
                    kc = abs(tg - n)
                    if kc < best_kc:
                        best_kc = kc
                        best_tg = tg
    return best_kc

# Nhập giá trị N từ bàn phím
n = int(input()) 
print(tim_gan_nhat(n))

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.