Submission #964284

#TimeUsernameProblemLanguageResultExecution timeMemory
964284rolandpetreanSprinkler (JOI22_sprinkler)C++17
9 / 100
274 ms33216 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int ll #define endl '\n' #define pb push_back using pi = array<int, 2>; const int N = 2e5 + 5; vector<int> adj[N]; int par[N]; int h[N], wch[N]; void dfs(int u) { for (int v : adj[u]) { if (v == par[u]) continue; par[v] = u; dfs(v); } } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, l; cin >> n >> l; for (int i = 1; i < n; ++i) { int u, v; cin >> u >> v; adj[u].pb(v); adj[v].pb(u); } for (int i = 0; i <= n; ++i) wch[i] = 1; dfs(1); for (int i = 1; i <= n; ++i) cin >> h[i]; int q; cin >> q; while (q--) { int t; cin >> t; if (t == 1) { int u, d, w; cin >> u >> d >> w; assert(d <= 1); h[u] = h[u] * w % l; if (d == 1) { h[par[u]] = h[par[u]] * w % l; wch[u] = wch[u] * w % l; } } else { int u; cin >> u; int ans = h[u]; ans = ans * wch[par[u]] % l; cout << ans << endl; } } }
#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...