Nhặt vàng trên đường một chiều
Xem dạng PDF📖 Bài giảng & lời giải: đây là Bài tập 7 trong bài giảng Bài 36: TPLT mạnh, khớp, cầu trên blog Lập trình thuật toán – có lý thuyết, mô phỏng từng bước, gợi ý và code C++ / Python.
⚠️ Lưu ý: hãy đảm bảo em đã thật sự cố gắng tự làm bài trước, rồi mới xem gợi ý và lời giải nhé!
🎓 Khóa học Lập trình Thuật toán thi đấu của thầy Nguyễn Việt Nam Sơn – 111 buổi video, kèm cặp cá nhân, luyện thi chuyên Tin · HSG Tin học · Tin học trẻ · đội tuyển quốc gia · Olympic/ICPC. 👉 Xem chi tiết khóa học · Thành tích học viên
📞 Đăng ký học: Zalo 0767 666 702 · Facebook Nguyễn Việt Nam Sơn · 🌐 laptrinhthuattoan.blogspot.com
Có $n$ hang đánh số từ $1$ tới $n$, hang $i$ chứa $a_i$ thỏi vàng, và $m$ đường hầm một chiều, đường hầm thứ $j$ đi từ hang $u_j$ tới hang $v_j$. Em xuất phát ở hang $1$ và đi tuỳ ý theo các đường hầm (dừng lại ở đâu cũng được), được đi qua một hang nhiều lần nhưng vàng ở mỗi hang chỉ nhặt được một lần (vàng ở hang $1$ cũng được nhặt). Hỏi nhặt được nhiều nhất bao nhiêu thỏi vàng?
Dữ liệu vào
- Dòng 1: hai số nguyên $n, m$ ($1 \le n \le 10^5$, $0 \le m \le 2 \cdot 10^5$).
- Dòng 2: $n$ số nguyên $a_1, a_2, \ldots, a_n$ ($0 \le a_i \le 10^9$).
- $m$ dòng tiếp theo, mỗi dòng gồm hai số nguyên $u, v$ ($1 \le u, v \le n$, $u \ne v$). Các đường hầm có thể lặp lại.
Kết quả
In ra số thỏi vàng nhiều nhất nhặt được (chú ý kết quả có thể vượt quá phạm vi kiểu int).
Sample Input
6 7
1 2 3 4 5 10
1 2
2 3
3 1
3 4
4 5
5 4
2 6
Sample Output
16
Bình luận