Hành Trình Của Tom Và Jerry

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1900 Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Tom đang rượt đuổi Jerry qua một ngôi nhà phức tạp. Ngôi nhà được mô hình hóa thành một đồ thị có hướng không chu trình (DAG) gồm \(N\) căn phòng và \(M\) hành lang một chiều kết nối giữa các phòng. Các phòng được đánh số từ \(1\) đến \(N\).

Tại mỗi phòng \(u\), nếu Jerry chạy qua mà kích hoạt bẫy tại phòng đó, Jerry thu được lượng năng lượng là \(A_u\). Ngược lại, nếu không kích hoạt bẫy, Jerry thu được lượng năng lượng là \(B_u\).

Jerry muốn chọn một hành trình di chuyển dọc theo các hành lang một chiều \(p = (v_1, v_2, \dots, v_m)\) (\(m \ge 1\)) kèm theo một tập hợp các phòng được chọn để kích hoạt bẫy \(S \subseteq \{v_1, v_2, \dots, v_m\}\) thỏa mãn các điều kiện sau:

  1. Số lượng phòng được kích hoạt bẫy đúng bằng \(K\), tức là \(|S| = K\).
  2. Không có hai phòng nào kề nhau liên tiếp trên đường đi cùng được kích hoạt bẫy (để tránh bị sập bẫy liên tiếp). Nghĩa là không tồn tại \(i\) (\(1 \le i < m\)) sao cho cả \(v_i \in S\) và \(v_{i+1} \in S\).

Tổng năng lượng của hành trình \((p, S)\) đạt được là:

\[\text{Score}(p, S) = \sum_{v \in S} A_v + \sum_{v \in p \setminus S} B_v\]

Hãy giúp Jerry tìm tổng năng lượng lớn nhất có thể đạt được. Nếu không tồn tại hành trình nào thỏa mãn tất cả các điều kiện trên, in ra \(-1\).

Input

  • Dòng đầu tiên chứa ba số nguyên \(N, M, K\) (\(1 \le N \le 30000\), \(1 \le M \le 50000\), \(1 \le K \le 100\)).
  • Dòng thứ \(u\) trong \(N\) dòng tiếp theo chứa hai số nguyên \(A_u, B_u\) (\(-10^9 \le A_u, B_u \le 10^9\)).
  • \(M\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(u, v\) (\(1 \le u, v \le N\), \(u \neq v\)) mô tả một hành trình một chiều từ phòng \(u\) đến phòng \(v\).

Output

  • In ra một số nguyên duy nhất là tổng năng lượng lớn nhất thu được. Nếu không tồn tại hành trình hợp lệ, in ra \(-1\).

Example

Test 1

Input
4 4 2
10 -5
2 100
20 5
3 -1
1 2
1 3
2 4
3 4
Output
113
Note

Hành trình được chọn là \(1 \to 2 \to 4\). Tập phòng kích hoạt bẫy là \(S = \{1, 4\}\) (gồm đúng \(K=2\) phòng, hai phòng 1 và 4 không kề nhau trên đường đi). Tổng năng lượng đạt được là \(A_1 + B_2 + A_4 = 10 + 100 + 3 = 113\).

Test 2

Input
2 1 2
1 1
1 1
1 2
Output
-1
Note

Đường đi duy nhất chỉ gồm 2 phòng kề nhau \(1 \to 2\). Để chọn \(K=2\) phòng kích hoạt bẫy thì bắt buộc phải chọn cả phòng 1 và phòng 2, vi phạm điều kiện hai phòng kề nhau không cùng kích hoạt. Do đó không có hành trình nào hợp lệ.

Scoring

  • Subtask 1 (100% điểm): \(1 \le N \le 30000\), \(1 \le M \le 50000\), \(1 \le K \le 100\).

UP VOTE PLS

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.