trang chủ / đề bài / voi14_jobset

Chọn công việc

Đề bài

Mô tả

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à pi (nếu pi>0 đó là lợi nhuận, ngược lại nếu pi<0 thì đó là thua lỗ phải chịu từ việc thực hiện dự án i, |pi|<106).

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 uj thì phải thực hiện dự án vj", j=1,2,…,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.

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 vào

  • Dòng đầu ghi một số nguyên dương n.
  • Dòng thứ hai ghi n số nguyên p1,p2,…,pn tương ứng là tính hiệu quả của từng công việc.
  • Dòng thứ ba ghi một số nguyên dương m (m≤104).
  • Dòng thứ j trong số m dòng tiếp theo ghi hai số nguyên dương uj và vj chỉ sự ràng buộc rằng nếu thực hiện công việc uj thì phải thực hiện công việc vj.

Dữ liệu ra

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

Ràng buộc

  • 1≤n≤500; 1≤m≤104.
  • |pi|<106.
  • 1≤uj,vj≤n.

Subtasks

  • Subtask 1 (30% số điểm): n≤20.
  • Subtask 2 (30% số điểm): n≤100.
  • Subtask 3 (40% số điểm): n≤500.

Mỗi subtask gồm nhiều test, mỗi test được chấm điểm riêng.

Ví dụ

Input Output Giải thích
6
10 4 -5 3 -1 -2
4
2 3
2 5
6 5
4 3
11 Chọn các dự án 1,2,3,4,5: dự án 2 cần 3 và 5, dự án 4 cần 3; tổng 10+4−5+3−1=11.
3
-1 -2 -3
1
1 2
0 Mọi dự án đều thua lỗ nên không chọn dự án nào.

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