trang chủ / bài tập / sleepgap

Giấc ngủ dài nhất

Đề bài

Mô tả

Một ngày có đúng 1440 phút (từ 00:00 đến 23:59). Bạn đặt n báo thức, báo thức thứ i reo vào cùng một thời điểm mỗi ngày và kêu trong đúng một phút.

Một báo thức đặt tại thời điểm hh:mm bắt đầu reo ở đầu phút đó và ngừng reo ở đầu phút kế tiếp. Bạn chỉ có thể bắt đầu ngủ ngay khi không có báo thức nào đang reo, và bạn thức dậy đúng vào thời điểm một báo thức bắt đầu reo.

Hãy xác định khoảng thời gian liên tục dài nhất mà bạn có thể ngủ (không báo thức nào reo trong khoảng đó). Lưu ý là bạn có thể bắt đầu ngủ trong một ngày và thức dậy vào ngày hôm sau, vì lịch báo thức lặp lại giống nhau mỗi ngày.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số báo thức.
  • n dòng tiếp theo, mỗi dòng chứa một mô tả báo thức dạng hh:mm, trong đó hh là giờ (từ 00 đến 23) và mm là phút (từ 00 đến 59). Tất cả thời điểm báo thức đôi một khác nhau và có thứ tự bất kỳ.

Dữ liệu ra

In ra một dòng dạng hh:mm là khoảng thời gian ngủ liên tục dài nhất, với hh là số giờ và mm là số phút (mm nằm trong khoảng từ 00 đến 59).

Ràng buộc

  • 1n100
  • Tất cả thời điểm báo thức đôi một khác nhau.

Ví dụ

Input Output Giải thích
4
22:00
03:21
16:03
09:59
06:37 Khoảng trống dài nhất nằm giữa báo thức 03:21 và 09:59: ngủ từ 03:22 đến 09:59, được 6 giờ 37 phút.
1
05:43
23:59 Chỉ có một báo thức reo trong một phút, rồi reo lại vào ngày hôm sau. Bạn ngủ được suốt 23 giờ 59 phút giữa hai lần reo.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0