This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int main(){
long long n, l; cin >> n >> l;
vector<vector<long long>> adj(n, vector<long long>());
long long a, b;
for(long long i = 0; i < n - 1; i ++){
cin >> a >> b; a -= 1; b -= 1;
adj[a].push_back(b);
adj[b].push_back(a);
}
vector<long long> heights(n, 0);
long long z;
for(long long i = 0; i < n; i ++){
cin >> z;
heights[i] = z;
}
long long queries; cin >> queries;
long long t;
long long x, d, w;
vector<long long> res;
for(long long i = 0; i < queries; i ++){
cin >> t;
if(t == 1){
cin >> x >> d >> w;
x -= 1;
queue<vector<long long>> q;
q.push({0, x, -1});
long long 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(long long 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(long long 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 (stderr)
sprinkler.cpp: In function 'int main()':
sprinkler.cpp:39:40: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
39 | for(long long i = 0; i < adj[node].size(); i ++){
| ~~^~~~~~~~~~~~~~~~~~
sprinkler.cpp:50:28: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
50 | for(long long i = 0; i < res.size(); i ++){
| ~~^~~~~~~~~~~~
# | 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... |