trang chủ / đề bài / dhbb23_cls_10_c

TREASURE

Đề bài

Mô tả

Có N chiếc rương kho báu, chiếc rương thứ i có giá trị là Ci. Ban đầu có K chìa khóa. Chiếc chìa khóa thứ i có thể được dùng để mở một trong hai chiếc rương Ai và Bi (lưu ý là không thể dùng chiếc chìa khóa thứ i để mở cả hai rương Ai và Bi). Mỗi chiếc rương chỉ có thể được mở khóa một lần, và không nhất thiết phải sử dụng tất cả các chìa khóa.

Cho K truy vấn, truy vấn thứ i yêu cầu bỏ đi chiếc chìa khóa thứ Pi (các chìa khóa không được đánh số lại sau các truy vấn). Các truy vấn được thực hiện lần lượt, chìa khóa đã bỏ đi không được thêm lại.

Yêu cầu: Sau mỗi truy vấn, hãy cho biết: giả sử ta dùng các chìa khóa còn lại để mở rương, thì với cách mở khóa rương tối ưu, tổng giá trị kho báu lớn nhất thu được từ các rương được mở là bao nhiêu.

Dữ liệu vào

  • Dòng đầu tiên gồm hai số nguyên N,K (2≤N≤200000, 1≤K≤200000), tương ứng là số rương kho báu và số chìa khóa; số chìa khóa đồng thời là số truy vấn.
  • Dòng tiếp theo gồm N số nguyên C1,C2,…,CN (1≤Ci≤109), là giá trị của các rương kho báu.
  • K dòng tiếp theo, dòng thứ i gồm hai số nguyên Ai,Bi (1≤Ai,Bi≤N, Ai≠Bi), mô tả chiếc chìa khóa thứ i. Hai chìa khóa khác nhau có thể mở cùng một cặp rương.
  • Dòng tiếp theo gồm K số nguyên phân biệt P1,P2,…,PK (1≤Pi≤K), mô tả các truy vấn.

Dữ liệu ra

Gồm K dòng, dòng thứ i gồm một số nguyên là tổng giá trị kho báu lớn nhất thu được sau khi thực hiện truy vấn thứ i.

Ràng buộc

  • 2≤N≤200000, 1≤K≤200000.
  • 1≤Ci≤109.
  • 1≤Ai,Bi≤N, Ai≠Bi.
  • P1,P2,…,PK đôi một phân biệt, 1≤Pi≤K.

Subtasks

  • Subtask 1 (20% số điểm): N,K≤16.
  • Subtask 2 (30% số điểm): N,K≤2000.
  • Subtask 3 (50% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
4 4
9 5 7 2
2 3
3 1
1 2
1 4
4 1 2 3
21
16
9
0
Sau truy vấn thứ nhất, còn lại các chìa khóa 1,2,3. Ta có thể dùng chìa 1 để mở rương 2, chìa 2 để mở rương 3 và chìa 3 để mở rương 1, tổng giá trị là 9+5+7=21. Sau truy vấn thứ hai, còn lại các chìa khóa 2,3: dùng chìa 2 mở rương 3, chìa 3 mở rương 1, tổng là 9+7=16. Sau truy vấn thứ ba chỉ còn chìa 3, dùng nó mở rương 1 với giá trị 9. Sau truy vấn thứ tư không còn chìa khóa nào nên không mở được rương nào.
3 3
4 6 1
1 2
2 1
2 3
3 1 2
10
6
0
Sau truy vấn thứ nhất còn hai chìa 1,2 cùng mở được rương 1 hoặc 2, dùng mỗi chìa mở một rương: 4+6=10. Sau truy vấn thứ hai chỉ còn chìa 2, mở rương 2: 6. Sau truy vấn thứ ba không còn chìa 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