#1576. JOBSET

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

NGUỒN: VOI 2014

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, có thể là thua lỗ) từ việc thực hiện dự án i p_i (nếu p_i > 0 thì đó là lợi nhuận đem lại, còn p_i < 0 thì đó là thua lỗ phải chịu từ việc thực hiện dự án i , |p_i| < 10^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, \ldots, 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 nêu trong danh sách.

Yêu cầu: 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.

Dữ liệu:

  • 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 dự án;
  • Dòng thứ ba ghi một số nguyên dương m\ (m ≤ 10^4) ;
  • Dòng thứ j trong số m dòng tiếp theo ghi hai số nguyên dương u_j v_j chỉ sự ràng buộc nếu thực hiện dự án u_j thì phải thực hiện dự án v_j .

Kết quả:

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

Ví dụ:

Dữ liệu:

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

Kết quả:

11

Giải thích:

  • Tập con các dự án lựa chọn được cần tìm là S = \{1, 2, 3, 4, 5\} đem lại tổng hiệu quả là 10 + 4 + (-5) + 3 + (-1) = 11 .

Ràng buộc:

  • 30\% số test tương ứng với các bộ dữ liệu có giới hạn n ≤ 20 ;
  • 30\% số test khác tương ứng với các bộ dữ liệu có giới hạn n ≤ 100 .
  • 40\% số test còn lại tương ứng với các bộ dữ liệu có giới hạn n ≤ 500 .