Chuyến bay Covid đặc biệt


Submit solution

Points: 3 (partial)
Time limit: 0.5s
Memory limit: 977M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Đại dịch Covid bùng phát, 100 ngày qua là sự vào cuộc quyết liệt của các lực lượng quân đội, công an, y tế, truyền thông báo chí, các nhà khoa học... đặc biệt là sự chung sức, đồng lòng và ủng hộ của người dân trong cuộc chiến này. Chúng ta đã gần như chiến thắng đại dịch, tuy nhiên Công dân Việt Nam vẫn còn đang bị cô lập tại các tâm dịch nước ngoài. Giữa tình hình trên, được sự chấp thuận của Chính phủ và Bộ Ngoại giao Việt Nam, Hãng máy bay UTC đã thực hiện chuyến bay đặc biệt hành trình đi đón các công dân.

UTC xuất phát từ sân bay A, và muốn bay đến sân bay B để đón các công dân tại đó, Tuy nhiên, trong thời khủng hoảng, vì lí do phòng chống dịch cao độ, chuyến bay UTC cần phải tuân theo quy định đường bay của Thế giới.

Cụ thể, Mỗi sân bay sẽ chỉ định lịch trình các chuyến bay mà có thể thực hiện tại sân bay đó: Ví dụ một lịch trình như sau:

  • Tại sân bay Nội Bài và đi tới Canada, UTC cất cánh lúc 03:00 và hạ cánh tại Canada lúc 06:00.

Lưu ý: một sân bay có thể chỉ định nhiều chuyến bay khác nhau mà sân bay cho phép.

Vì thời gian cấp bách, chuyến bay UTC cần phải đến nơi sớm nhất có thể.

Vì vậy, Sau khi biết được danh sách các chuyến bay cho phép tại mỗi sân bay, Các UTCer cần phải tính toán chính xác thời điểm sớm nhất mà UTC sẽ hạ cạnh tại B để các Công dân nhanh chóng di chuyển lên sân bay kịp thời.

Biết rằng, UTC đã có mặt tại sân bay A lúc 00:00 để chọn chuyến bay đầu tiên.

Do mỗi lần đổi tuyến bay, các nhân viên UTC cần phải thực hiện công tác vệ sinh chân tay để phòng chống virus, nên mỗi lần đổi chuyến sẽ bị mất thêm 60 phút. Ví dụ: UTC hạ cánh tại trong chuyến bay từ A->C lúc 06:30, tại C chỉ có duy nhất chuyến bay từ C->B lúc 07:00, như vậy sau khi công tác vệ sinh xong là 07:30UTC sẽ không thể bay tiếp đến B.

Input:

  • Dòng đầu tiên gồm 3 biến N, AB. Trong đó:
    • N: thể hiện số lịch trình cho phép tại các sân bay (1 <= N <= 10000)
    • A: tên sân bay xuất phát của UTC
    • B: tên sân bay mà UTC cần đến để đón công dân
  • N dòng tiếp theo, mỗi dòng gồm 4 biến source, dest, start, end. Trong đó:
    • source: chuỗi thể hiện tên của sân bay xuất phát (source != dest)
    • dest: chuỗi thể hiện tên của sân bay đích đến
    • start: thời gian xuất phát cho phép cho chuyến bay từ source tới dest
    • end: thời gian hạ cánh tại dest

Lưu ý:

  • Các tên sân bay có độ dài 1 đến 15 kí tự.
  • start, dest có định dạng HH:MM tương ứng là số giờ và số phút. trong trường hợp HH > 23 thì sẽ được tính tiếp vào ngày tiếp theo. Ví dụ: start = 06:30, end = 25:30 có ý nghĩa chuyến bay cần phải xuất phát từ 6:30 sáng và hạ cánh tại 01:30 sáng hôm sau.

Output:

  • 01 Dòng duy nhất:
  • Thời gian sớm nhất định dạng HH:MMUTC sẽ hạ cánh tại B trong chuyến bay từ A đến B
  • Trong trường hợp không thể tới B, in ra "-1"

Example:

Input:

9 Vietnam Austin
Vietnam Denver 03:00 06:00
Vietnam Denver 03:30 07:00
Vietnam LosAngeles 01:00 05:00
Denver Austin 06:30 08:30
Denver Austin 07:30 09:30
Austin Denver 06:30 08:30
LosAngeles Phoenix 06:00 07:00
LosAngeles Phoenix 05:30 06:50
Phoenix Austin 08:00 08:40

Output:

08:40

Giải thích sample test:

UTC di chuyển với lịch trình như sau:
Vietnam -> LosAngeles xuất phát từ 01:00 và hạ cánh lúc 05:00
LosAngeles -> Phoenix  xuất phát từ 06:00 và hạ cánh lúc 07:00
Phoenix -> Austin xuất phát từ 08:00 và hạ cánh lúc 08:40

Như vậy, tổng thời gian di chuyển là 07:40 phút và hạ cánh tại đích lúc 08:40.

Comments

There are no comments at the moment.