Submission #1274207

#TimeUsernameProblemLanguageResultExecution timeMemory
1274207lechaaSprinkler (JOI22_sprinkler)C++20
0 / 100
1 ms572 KiB
#include <bits/stdc++.h> using namespace std; #define int long long vector<int> par; vector<vector<int>> g; void fpar(int k, int p){ par[k] = p; for(int i = 0; i < g[k].size(); i++){ if(g[k][i] == p) continue; fpar(g[k][i], k); } } signed main(){ ios_base::sync_with_stdio(0); cin.tie(0); // freopen("a.in", "r", stdin); // freopen("pertahanan_6.out", "w", stdout); int n, l; cin >> n >> l; vector<vector<int>> dp(n+1, vector<int>(41, 1)); par.resize(n+1); g.resize(n+1); for(int i = 0; i < n-1; i++){ int a, b; cin >> a >> b; g[a].push_back(b); g[b].push_back(a); } vector<int> h(n+1); for(int i = 1; i <= n; i++){ cin >> h[i]; } fpar(1, -1); int q; cin >> q; while(q--){ int t; cin >> t; if(t == 1){ int k, d, w; cin >> k >> d >> w; while(d >= 0 && k != -1){ dp[k][d] *= w; dp[k][d]%=l; k = par[k]; d--; } }else{ int k; cin >> k; int ns = h[k]; for(int i = 0; i <= 40 && k != -1; i++){ ns *= dp[k][i]; ns%=l; k = par[k]; } cout << ns << "\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...