Làm task trong CLB

View as PDF

Submit solution

Points: 1.00
Time limit: 2.0s
Memory limit: 64M
Input: stdin
Output: stdout

Author:
Problem type

Trong CLB lập trình H3.2, có n thành viên với leader Trung Phan có STT 1, còn các thành viên kia sẽ có STT từ 2,3,...,n. Dưới leader này sẽ có một số thư ký, rồi dưới mỗi thư ký sẽ có một số trợ lý thư ký, ..., nói chung quan hệ cấp bậc trong CLB phân biệt khá rõ, tạo thành một mô hình cây. Các thành viên mới vào sẽ thuộc 'tầng lớp' thấp nhất (có thể gọi là cộng tác viên). Thầy Luna thường giao các task cho một thành viên nào đó của CLB, và nếu hoàn thành tốt thì được thưởng, còn không thì sẽ bị phạt với một mức tiền nhất định. Có một điều đặc biệt, một khi thành viên được x đồng (số này có thể âm hoặc dương, tùy vào bị phạt hay được thưởng) thì tất cả cấp dưới của người này sẽ được x đồng, rồi cấp dưới nữa lại được (x)=x đồng, và cứ thế lan truyền xuống cấp thấp nhất. Ban đầu mỗi người sẽ có 0 đồng. Thầy Luna thắc mắc tại một thời điểm nào đó, một người có STT i sẽ đang có bao nhiêu tiền?

Input:

Dòng đầu tiên gồm hai số nguyên dương n,m với 2n,m105.

Mỗi dòng trong n1 dòng tiếp theo sẽ gồm một cặp số x,y cho biết STT của hai thành viên có làm việc trực tiếp với nhau (chưa biết ai là cấp trên của ai), chỉ biết STT 1 là cấp cao nhất.

Mỗi dòng trong m dòng tiếp theo sẽ có một trong hai dạng (cho biết sẽ có ít nhất một câu hỏi dạng 2):

1 i x: người thứ i sẽ nhận một giá trị là x, trong đó x2023.

2 i: yêu cầu cho biết số tiền hiện tại mà người thứ i trong CLB có.

Output:

Trả lời cho các câu hỏi dạng 2, theo thứ tự từ trên xuống.

Sample input:

Copy
4 3
1 2
1 3
3 4
2 4
1 1 3
2 4

Sample output:

Copy
0
3

Comments

Please read the guidelines before commenting.


There are no comments at the moment.