제출 #890632

#제출 시각아이디문제언어결과실행 시간메모리
890632MinaRagy06Sprinkler (JOI22_sprinkler)C++17
3 / 100
4059 ms24572 KiB
#include <bits/stdc++.h>
using namespace std;
#define ll long long

const int N = 200'005;
vector<int> adj[N];
int mod;
int a[N];
void dfs(int i, int mx, int w, int d = 0, int par = 0) {
	a[i] = 1ll * a[i] * w % mod;
	for (auto nxt : adj[i]) {
		if (nxt == par || d + 1 > mx) continue;
		dfs(nxt, mx, w, d + 1, i);
	}
}
int main() {
	ios_base::sync_with_stdio(0), cin.tie(0);
	int n;
	cin >> n >> mod;
	for (int i = 1, u, v; i < n; i++) {
		cin >> u >> v;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	int m;
	cin >> m;
	while (m--) {
		int t;
		cin >> t;
		if (t == 1) {
			int x, d, w;
			cin >> x >> d >> w;
			dfs(x, d, w);
		} else {
			int x;
			cin >> x;
			cout << a[x] << '\n';
		}
	}
	return 0;
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...