Chuyển vàng
Đề bài
Mô tả
Có một cây có gốc. Mỗi đỉnh chứa một lượng vàng: đỉnh có tấn vàng với giá mỗi tấn. Ban đầu cây chỉ gồm một đỉnh gốc đánh số , chứa tấn vàng giá mỗi tấn.
Có truy vấn, mỗi truy vấn thuộc một trong hai loại:
- Thêm đỉnh (với là chỉ số của truy vấn) làm con của đỉnh ; đỉnh chứa tấn vàng giá mỗi tấn. Dữ liệu đảm bảo .
- Cho đỉnh , xét đường đi đơn từ tới gốc. Ta cần mua tấn vàng từ các đỉnh trên đường đi này sao cho tổng số tiền phải trả là nhỏ nhất. Nếu tổng lượng vàng trên đường đi không đủ tấn, ta mua hết những gì có thể.
Khi mua tấn vàng ở một đỉnh, lượng vàng còn lại của đỉnh đó giảm đi (dĩ nhiên không thể mua nhiều hơn lượng vàng đỉnh đó đang có). Với mỗi truy vấn loại 2, hãy tính lượng vàng thực sự mua được và số tiền phải trả.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , .
- dòng tiếp theo, dòng thứ mô tả truy vấn thứ :
- "1 ": thêm đỉnh làm con của đỉnh .
- "2 ": mua tấn vàng trên đường đi từ tới gốc .
Dữ liệu ra
Với mỗi truy vấn loại 2, in ra một dòng gồm hai số nguyên: lượng vàng mua được và số tiền tối thiểu phải trả.
Ràng buộc
- Với truy vấn loại 1: ; ; đảm bảo đỉnh tồn tại và .
- Với truy vấn loại 2: ; ; đảm bảo đỉnh tồn tại.
- Dữ liệu đảm bảo có ít nhất một truy vấn loại 2.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 5 2 2 0 2 1 0 3 4 2 2 4 1 0 1 3 2 4 2 |
2 4 4 10 1 3 |
Truy vấn 1: cây chỉ có gốc, mua 2 tấn, trả , gốc còn 3 tấn. Truy vấn 3: đường đi gồm đỉnh 0 (giá 2) và đỉnh 2 (giá 4). Mua 3 tấn còn lại ở đỉnh 0 và 1 tấn ở đỉnh 2: mua tấn, trả . Truy vấn 5: đường đi ; gốc đã hết vàng, đỉnh 4 chỉ có 1 tấn, mua 1 tấn giá 3. |
| 1 5 2 2 0 100 |
5 10 | Cây chỉ có gốc với 5 tấn vàng giá 2. Yêu cầu mua 100 tấn nhưng chỉ có 5 tấn, nên mua hết 5 tấn và trả . |
Bình luận