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;
typedef long long ll;
#define pii pair<int,int>
#define fi first
#define se second
#define pb push_back
const int N = 2e5;
long long h[N+5];
int n, l;
vector<int> adj[N+5];
void dfs (int u, int prv, long long w, int dst) {
if (dst < 0) return;
h[u] *= w;
h[u] %= l;
//cerr << u << " lalala " << h[u] << endl;
for (int v : adj[u]) {
if (v==prv) continue;
dfs(v, u, w, dst-1);
}
}
void solve() {
cin >> n >> l;
for(int i=1; i<n; i++) {
int a, b;
cin >> a >> b;
adj[a].pb(b);
adj[b].pb(a);
}
for (int i=1; i<=n; i++) {
cin >> h[i];
}
int q;
cin >> q;
while (q--) {
int tp;
cin >> tp;
if (tp == 1) {
int x, d, w;
cin >> x >> d >> w;
dfs(x, 0, w, d);
} else {
int x;
cin >> x;
cout << h[x] << endl;
}
}
}
signed main () {
int t=1;
//scanf("%d", &t);
while(t--) {
solve();
}
}
# | 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... |