Số đường đi ngắn nhất

Xem PDF

Điểm: 300 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Ngày 27/11 tới là ngày tổ chức thi học kỳ I ở trường ĐH BK. Là sinh viên năm thứ nhất, Hiếu không muốn vì đi muộn mà gặp trục trặc ở phòng thi nên đã chuẩn bị khá kỹ càng. Chỉ còn lại một công việc khá gay go là Hiếu không biết đi đường nào tới trường là nhanh nhất.

Thường ngày Hiếu không quan tâm tới vấn đề này lắm cho nên bây giờ Hiếu không biết phải làm sao cả. Bản đồ thành phố là gồm có \(N\) nút giao thông và \(M\) con đường nối các nút giao thông này. Có 2 loại con đường là đường 1 chiều và đường 2 chiều. Độ dài của mỗi con đường là một số nguyên dương.

Nhà Hiếu ở nút giao thông 1 còn trường ĐH BK ở nút giao thông \(N\). Vì một lộ trình đường đi từ nhà Hiếu tới trường có thể gặp nhiều yếu tố khác như là gặp nhiều đèn đỏ, đi qua công trường xây dựng, ... phải giảm tốc độ cho nên Hiếu muốn biết là có tất cả bao nhiêu lộ trình ngắn nhất đi từ nhà tới trường. Bạn hãy lập trình giúp Hiếu giải quyết bài toán khó này.

Input

  • Dòng đầu tiên chứa số nguyên \(N,M\ (1≤N≤5000,1≤M≤31313)\);
  • M dòng tiếp theo mỗi dòng chứa 4 số nguyên dương \(K,U,V,L\ (1≤K≤2,1≤U,V≤N,1≤L≤32000)\) trong đó:
    • \(K=1\) nghĩa là có đường đi 1 chiều từ \(U\) tới \(V\) độ dài \(L\)
    • \(K=2\) nghĩa là có đường đi 2 chiều nối \(U\)\(V\) độ dài \(L\).

Output

  • Gồm 2 số nguyên là độ dài đường đi ngắn nhất và số lượng đường đi ngắn nhất biết số lượng đường đi ngắn nhất không quá 10000.

Example

** Sample input **

3 2
1 1 2 3
2 2 3 1

** Sample output **

41 


Nguồn: CĐ DHBB Chuyên Hạ Long


Bình luận


  • 0
    trieunguyen_a1 7:37 p.m. 23 Tháng 7, 2023

    Hình như output phải ghi tách : đường đi ngắn nhất và số cách nhưng ở output mẫu thì lại ghi liền