trang chủ / đề bài / dhbb23_clk_11_c

Vận chuyển hàng

Đề bài

Mô tả

Đất nước Alpha có n thành phố, được đánh số từ 1 đến n. Các thành phố được nối với nhau bởi hệ thống giao thông gồm m đường hai chiều, mỗi đường nối một cặp thành phố. Hệ thống giao thông đảm bảo có đường đi giữa hai thành phố bất kỳ trong nước, trực tiếp hoặc qua một số thành phố khác. Giữa hai thành phố bất kỳ có không quá một đường nối trực tiếp.

Có hai tập đoàn kinh tế lớn G và Y chi phối toàn bộ hoạt động thương mại trong cả nước. Mỗi thành phố thuộc một trong hai tập đoàn G hoặc Y. Khi vận chuyển hàng hóa từ thành phố này đến thành phố khác, chủ hàng phải trả chi phí 1 AL (đơn vị tiền tệ nước Alpha) trên mỗi đường đi qua. Ngoài ra, mỗi khi đi qua một thành phố do tập đoàn khác quản lý, chủ hàng phải trả thêm 3 AL. Chủ hàng luôn chọn đường đi có tổng chi phí nhỏ nhất.

Hai tập đoàn chỉ vận chuyển hàng giữa các thành phố của mình, nên thành phố xuất phát và thành phố đích luôn cùng tập đoàn; khoản 3 AL tính cho mỗi thành phố trung gian trên đường đi thuộc tập đoàn còn lại (đi qua nhiều thành phố như vậy thì trả cho từng thành phố). Chi phí vận chuyển giữa hai thành phố u và v của cùng một tập đoàn là tổng chi phí nhỏ nhất của một đường đi từ u đến v; mỗi cặp không thứ tự {u,v} được tính một lần.

Yêu cầu: Cho biết n,m và mạng giao thông trong Alpha. Hãy giúp hai tập đoàn G và Y tính tổng chi phí vận chuyển hàng giữa mọi cặp thành phố thuộc tập đoàn của họ.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên n,m.
  • Dòng thứ hai chứa một xâu gồm n ký tự, mỗi ký tự là G hoặc Y. Ký tự thứ i cho biết thành phố i thuộc tập đoàn G hay Y.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên i,j (1≤i,j≤n, i≠j) xác định một đường nối thành phố i với thành phố j.

Dữ liệu ra

In ra một dòng chứa hai số, lần lượt là tổng chi phí vận chuyển hàng giữa mọi cặp thành phố thuộc tập đoàn G và tổng chi phí vận chuyển hàng giữa mọi cặp thành phố thuộc tập đoàn Y. Nếu một tập đoàn có ít hơn hai thành phố thì tổng tương ứng bằng 0.

Ràng buộc

  • 1≤n≤1000, n−1≤m≤5000.
  • Mạng giao thông liên thông, không có hai đường nối cùng một cặp thành phố.

Subtasks

  • Subtask 1: n≤100, m≤5000.
  • Subtask 2: n≤1000, m≤5000.

Ví dụ

Input Output Giải thích
5 5
YGYGY
1 2
2 3
3 4
4 5
5 1
5 11 Tập đoàn G có hai thành phố 2,4: đi 2→3→4 tốn 2 AL tiền đường và 3 AL khi qua thành phố 3 (của Y), tổng 5. Tập đoàn Y có ba thành phố 1,3,5: cặp {1,5} tốn 1, cặp {1,3} đi 1→2→3 tốn 5, cặp {3,5} đi 3→4→5 tốn 5; tổng 11.
5 5
GYGGG
1 2
2 3
1 4
4 5
5 3
10 0 Từ 1 đến 3, đường 1→2→3 chỉ có 2 đường nhưng qua thành phố 2 của Y nên tốn 5; đường 1→4→5→3 tốn 3 nên chi phí là 3. Các cặp còn lại của G: {1,4}=1, {1,5}=2, {3,4}=2, {3,5}=1, {4,5}=1; tổng 10. Tập đoàn Y chỉ có một thành phố nên tổng bằng 0.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0