#include <bits/stdc++.h>
using namespace std;
int main(){
int n, l; cin >> n >> l;
vector<vector<int>> adj(n, vector<int>());
int a, b;
for(int i = 0; i < n - 1; i ++){
cin >> a >> b; a -= 1; b -= 1;
adj[a].push_back(b);
adj[b].push_back(a);
}
vector<int> heights(n, 0);
int z;
for(int i = 0; i < n; i ++){
cin >> z;
heights[i] = z;
}
int queries; cin >> queries;
int t;
int x, d, w;
vector<int> res;
for(int i = 0; i < queries; i ++){
cin >> t;
if(t == 1){
cin >> x >> d >> w;
x -= 1;
queue<vector<int>> q;
q.push({0, x});
int node, dist, parent;
while(!q.empty()){
node = q.front()[1];
dist = q.front()[0];
parent = q.front()[2];
heights[node] *= w;
heights[node] %= l;
q.pop();
for(int i = 0; i < adj[node].size(); i ++){
if(adj[node][i] != parent and dist < d){
q.push({dist + 1, adj[node][i], node});
}
}
}
} else {
cin >> x;
res.push_back(heights[x-1]);
}
}
for(int i = 0; i < res.size(); i ++){
cout << res[i] << "\n";
}
}
/*
g++ -std=gnu++17 -O2 -pipe -static -o joi joi.cpp
4 7
1 2
2 3
3 4
1
1
1
1
11
1 2 1 2
1 1 0 2
2 1
2 2
2 3
2 4
1 4 10 2
2 1
2 2
2 3
2 4
*/
Compilation message
sprinkler.cpp: In function 'int main()':
sprinkler.cpp:39:34: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
39 | for(int i = 0; i < adj[node].size(); i ++){
| ~~^~~~~~~~~~~~~~~~~~
sprinkler.cpp:50:22: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
50 | for(int i = 0; i < res.size(); i ++){
| ~~^~~~~~~~~~~~
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
621 ms |
22508 KB |
Output is correct |
3 |
Correct |
2717 ms |
21884 KB |
Output is correct |
4 |
Correct |
969 ms |
21980 KB |
Output is correct |
5 |
Execution timed out |
4074 ms |
21048 KB |
Time limit exceeded |
6 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Incorrect |
1 ms |
212 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |