#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//Sprinkler -> target:subtask 1,2,3
ll n, l, h[200003];
vector<int> vc[200003];
void dfs(int i, int par, int d, int w){
h[i]=(h[i]*w)%l;
if(d==0)return;
for(int j=0; j<vc[i].size(); j++){
if(vc[i][j]!=par){
dfs(vc[i][j], i, d-1, w);
}
}
}
int main(){
cin >> n >> l;
for(int i=1; i<=n-1; i++){
int a, b;
cin >> a >> b;
vc[a].push_back(b);
vc[b].push_back(a);
}
for(int i=1; i<=n; i++){
cin >> h[i];
}
int q;
cin >> q;
while(q--){
int op;
cin >> op;
if(op==1){
int x, d, w;
cin >> x >> d >> w;
dfs(x, x, d, w);
}else {
int x;
cin >> x;
cout << h[x]%l<<endl;;
}
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |