Mạng lưới giao thông

View as PDF

Submit solution

Points: 100.00 (partial)
Time limit: 3.0s
Memory limit: 1G
Input: stdin
Output: stdout

Author:
Problem type
Allowed languages
C, C++, GAS64, Pascal, Perl, PHP, Python, Sed, TCL, Text

Trong một mạng lưới giao thông có n thành phố và m hành trình tàu đi trong n thành phố đó. Thời gian đi từ thành phố i đến thành phố j là ~t_{ij}~. Mỗi hành trình i xuất phát từ thành phố ~s_i1~ tại thời điểm ~t_i~, lần lượt đi qua một dãy các thành phố ~s_{i2}~, ~s_{i3}~, ..., ~s_{ik}~. Tại mỗi thành phố tàu sẽ dừng lại để các hành khách trên tàu xuống và đón các hành khách lên tàu (giả sử rằng mọi hành khách khi lên tàu đều được sắp chỗ ngồi và hành trình của một chuyến tàu là qua các thành phố khác nhau. Một người xuất phát từ thành phố s tại thời điểm t muốn đi đến thành phố d.

  1. Hãy tìm đường đi cho người đó đến d sớm nhất
  2. Hãy tìm đường đi đến d với số lần chuyển tuyến là ít nhất có thể
Dữ liệu vào:
  • Dòng đầu tiên ghi các số N, M, s, d, t
  • Tiếp theo là N dòng, dòng thứ i ghi các số ~t_{i2}~, ~t_{i3}~, ..., ~t_{in}~.
  • M dòng tiếp theo, mỗi dòng chứa thông tin về một chuyến tàu, bắt đầu bằng tời điểm xuất phát ~t_i~. Tiếp theo là dãy các thành phố mà tàu đi qua lần lượt trên hành trình.
Kết quả ghi ra:

Gồm hai số nguyên là thời gian đến d sớm nhất và số lần chuyển tuyến ít nhất (nếu không thể đến được d thì trong file kết quả ghi duy nhất số -1).

Ví dụ:
INPUT
5 2 1 5 0
7 1 7 7 7
1 7 2 0 7
7 2 7 1 2
7 7 1 7 7
7 7 2 7 7
0 1 2 3 4
4 2 3 5
OUTPUT
8 1

Comments

Please read the guidelines before commenting.


There are no comments at the moment.