VOI 14 Bài 6 - Chọn Công Việc

View as PDF

Submit solution

Points: 1.45 (partial)
Time limit: 1.0s
Memory limit: 512M
Input: stdin
Output: stdout

Problem source:
Ðề thi học sinh giỏi quốc gia 2013-2014
Problem type
Allowed languages
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Công ty xây dựng SVI phải lựa chọn các dự án cần thực hiện để lợi nhuận đem lại là nhiều nhất. Công ty có một danh sách gồm ~n~ dự án đánh số từ ~1~ đến ~n~. Sau khi công ty rà soát năng lực thực hiện các dự án, công ty đưa ra bảng đánh giá hiệu quả (có thể là lợi nhuận hoặc thua lỗ) từ việc thực hiện dự án ~i~ là ~p_i~ (nếu ~p_i > 0~ đó là lợi nhuận, ngược lại nếu ~p_i < 0~ thì đó là thua lỗ phải chịu từ việc thực hiện dự án ~i~, ~|p_i| < 1 0^6~).

Việc lựa chọn các dự án cần thực hiện để lợi nhuận đem lại là lớn nhất không phải là đơn giản bởi vì công ty không thể chỉ lựa chọn các công việc đem lại lợi nhuận để thực hiện. Có một danh sách gồm ~m~ điều kiện liên quan đến việc lựa chọn thực hiện các dự án. Điều kiện thứ ~j~ yêu cầu: "Nếu thực hiện dự án ~u_j~ thì phải thực hiện dự án ~v_j~", ~j = 1, 2, \dots, m~. Một tập con các dự án được gọi là lựa chọn được nếu mỗi dự án trong nó luôn thỏa mãn các điều kiện trong danh sách.

Hãy giúp công ty tìm tập các dự án lựa chọn được mà việc thực hiện chúng đem lại tổng hiệu quả lớn nhất.

Input

  • Dòng đầu ghi một số nguyên dương ~n~
  • Dòng thứ hai ghi ~n~ số nguyên tương ứng là tính hiệu quả của từng công việc.
  • Dòng thứ bai ghi một số nguyên dương ~m~ (~m \le 10^4~).
  • Dòng thứ ~j~ trong số ~m~ dòng tiếp theo ghi hai số nguyên dương ~u_j~ và ~v_j~ chỉ sự ràng buộc rằng nếu thực hiện công việc ~u_j~ thì phải thực hiện công việc ~v_j~.

Output

Ghi ra một số nguyên là tổng hiệu quả của tập các dự có thể án thực hiện tìm được. Ghi ra số ~0~ nếu như không chọn dự án nảo cả.

Giới hạn

  • 30% số test có ~n \le 20~.
  • 30% số test khác có ~n \le 100~.
  • 40% số test còn lại có ~n \le 500~.

Sample Input

6
10 4 -5 3 -1 -2
4
2 3
2 5
6 5
4 3

Sample Output

11

Comments

Please read the guidelines before commenting.



  • -8
    trongtenlinhcbhk64  commented on Sept. 26, 2023, 3:30 p.m.

    This comment is hidden due to too much negative feedback. Show it anyway.