Giới thiệu
Ở Đức, phán quyết về thời gian làm việc là rất nghiêm ngặt. Nếu bạn làm việc 6 giờ trở lên mỗi ngày, bạn phải nghỉ ít nhất 30 phút. Nếu bạn làm việc 9 giờ trở lên, bạn cần nghỉ 45 phút. Nếu bạn làm việc dưới 6 giờ, bạn không phải nghỉ ngơi.
Tất nhiên bạn có thể chia những lần nghỉ đó, nhưng mỗi phần phải dài ít nhất 15 phút để được tính.
Các thách thức
Trong thử thách này, bạn sẽ nhận được một danh sách các khoảng thời gian làm việc và bạn phải kiểm tra xem đã nghỉ đủ chưa, sử dụng các quy tắc sau:
Hãy w
là thời gian làm việc trong giờ:
w < 6 -> No breaks needed
6 <= w < 9 -> 30 minute break needed
w >= 9 -> 45 minute break needed
Ngoài ra, mỗi lần nghỉ phải dài ít nhất 15 phút. Ngoài ra, bạn luôn có thể nghỉ nhiều hơn cần thiết. Đó là tất cả các giá trị "ít nhất".
Đầu vào
Đầu vào của bạn sẽ là một danh sách các giai đoạn làm việc. Định dạng chính xác tùy thuộc vào bạn, nhưng nó chỉ chứa các giá trị thời gian là giờ và phút.
Thí dụ:
Định dạng ở đây là một danh sách các bộ dữ liệu trong khi mỗi bộ dữ liệu đại diện cho một khoảng thời gian làm việc. Phần tử đầu tiên trong một tuple sẽ là thời gian bắt đầu, phần tử thứ hai sẽ là thời gian kết thúc.
[("07:00","12:00"),("12:30","15:30"),("15:45","17:15")]
Điều này dẫn đến tổng thời gian làm việc là 9,5 giờ và tổng thời gian nghỉ là 45 phút.
Lưu ý rằng những khoảng thời gian làm việc đó không phải được phân tách bằng các khoảng nghỉ. Cũng có thể có những khoảng thời gian làm việc chỉ theo nhau (ví dụ xem trường hợp kiểm tra).
Cũng lưu ý rằng giờ nghỉ không được tính vào thời gian làm việc. Đó là hai giá trị riêng biệt.
Bạn có thể cho rằng các giai đoạn làm việc được ra lệnh.
Đầu ra
Với đầu vào, đầu ra một này truthy giá trị nếu đủ phá vỡ được thực hiện và một falsy giá trị nếu không muốn nói.
Quy tắc
- Chỉ định định dạng đầu vào bạn đang sử dụng trong trình của bạn.
- Bạn không phải xử lý đầu vào trống. Sẽ luôn có ít nhất một khoảng thời gian làm việc.
- Thời gian làm việc sẽ chỉ kéo dài một ngày, vì vậy bạn không phải xử lý công việc quá nửa đêm.
- Ngày- / Thời gian- / Bất cứ điều gì - Nội dung cho phép, miễn là nó đi kèm với ngôn ngữ của bạn.
- Chức năng hoặc chương trình đầy đủ cho phép.
- Quy tắc mặc định cho đầu vào / đầu ra.
- Tiêu chuẩn áp dụng.
- Đây là môn đánh gôn , do đó, số byte thấp nhất sẽ thắng. Tie-breaker là trình trước đó.
Các trường hợp thử nghiệm
Định dạng đầu vào giống như trong ví dụ trên.
[("07:00", "12:00"), ("12:30", "15:30"), ("15:45", "17:15")] -> THẬT // 9: 30h làm việc, nghỉ 45 phút -> OK [("07:20", "07:45"), ("07:59", "11:30"), ("11:55", "15:00")] -> FALSE // 7: 01h làm việc, nghỉ 39 phút, nhưng giờ nghỉ đầu tiên không được tính vì <15 phút [("06:00", "09:00"), ("09:00", "11:50")] -> TRUE // Chỉ làm việc 5: 50h, vì vậy không cần nghỉ [("07:30", "12:00"), ("12:30", "16:00")] -> TRUE // 8h làm việc, nghỉ 30 phút -> OK [("08:00", "12:30"), ("13:05", "17:45")] -> FALSE // 9: 10h làm việc, chỉ nghỉ 35 phút thay vì 45 phút cần thiết [("08:00", "14:00")] -> FALSE // 6h làm việc, không nghỉ, nhưng cần 30 phút
Chúc mừng mã hóa!