DISTRIBUTE

Nguồn: None

Morioh là một thành phố lớn gồm ~ n ~ điểm du lịch và ~ n – 1 ~ con đường nối từ điểm du lịch này sang điểm du lịch khác sao cho từ một điểm du lịch bất kì có thể đi được tới tất cả các điểm còn lại.

Josuke được ngài thị trưởng giao trách nhiệm đặt các trạm thu phí trên mỗi con đường sao cho chi phí của mỗi con đường là một số nguyên dương và số lượng con đường có chi phí là 1 phải nhỏ nhất có thể. Josuke rất thích số ~ k ~ nên tích tất cả các chi phí trên mỗi con đường phải bằng ~ k ~. Vì ~ k ~ có thể là một số rất lớn nên ~ k ~ sẽ được biểu diễn sang tích ~ m ~ thừa số nguyên tố ~ p_1, p_2,… p_m ~. ~ (p_1 × p_2 × …× p_m = k ) ~. Chi phí của đường đi từ điểm du lịch ~ u ~ đến điểm du lịch ~ v ~ là tổng tất cả các chi phí trên đường đi từ ~ u ~ đến ~ v ~. Gọi ~ d_{i,j} ~ là chi phí để đi từ ~ i ~ đến ~ j ~. Hãy giúp Josuke phân phối các chi phí sao cho tổng chi phí để di chuyển giữa các điểm du lịch phải lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu tiên gồm số ~ n ~ ~ ( n ≤ 10^5) ~
  • ~ n – 1 ~ dòng sau, dòng thứ ~ i ~ gồm 2 số ~ u_i ~ và ~ v_i ~ ~ (1 ≤ u_i, v_i ≤ n) ~, tức là có đường đi từ điểm du lịch ~ u_i ~ đến điểm du lịch ~ v_i ~
  • Dòng tiếp theo gồm số ~ m ~ ~ (m ≤ 6×10^4) ~
  • Dòng tiếp theo gồm ~ m ~ số ~ p_1, p_2,… ,p_m ~ ~ (2 ≤ p_i ≤ 6×10^4) ~

Kết quả

  • Ghi một số lớn nhất là kết quả tìm được. Vì kết quả rất lớn nên hãy lấy kết quả chia lấy dư cho ~ 1000000007 ~.

Ví dụ:

Input 1

4
1 2
2 3
3 4
2
2 2 

Output 1

17 

Input 2

7
6 1
2 3
4 6
7 3
5 1
3 6
4
7 5 13 3 

Output 2

286 

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. minhchau99 (21/40)
  2. tribinh (5/7)
  3. admin (3/4)
Trong 7 ngày
  1. caubeioi (39/63)
  2. nhatanh (25/38)
  3. minhchau99 (21/43)
Trong 30 ngày
  1. caubeioi (179/312)
  2. phamnhi (153/428)
  3. bestsoilvam (151/248)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38232

Lưu Hải Phong - 2020
[email protected]