Submission #1241032

#TimeUsernameProblemLanguageResultExecution timeMemory
1241032ProtonDecay314Sprinkler (JOI22_sprinkler)C++20
3 / 100
4094 ms17872 KiB
#pragma GCC optimize("O3", "unroll-loops") #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef vector<ll> vll; typedef vector<vll> vvll; typedef vector<int> vi; typedef vector<vi> vvi; typedef vector<vvi> v3i; typedef vector<v3i> v4i; typedef vector<bool> vb; typedef vector<vb> vvb; typedef pair<int, int> pi; typedef pair<ll, ll> pll; typedef vector<pi> vpi; typedef vector<pll> vpll; #define INF(dt) numeric_limits<dt>::max() #define NINF(dt) numeric_limits<dt>::min() #define pb push_back ll MOD = 1ll; int main() { ll n; cin >> n >> MOD; vvll adj(n, vll()); for(ll i = 0ll; i < n - 1ll; i++) { ll a, b; cin >> a >> b; a--; b--; adj[a].pb(b); adj[b].pb(a); } vll h(n, 0ll); for(ll& v : h) cin >> v; ll q; cin >> q; while(q--) { int qtype; cin >> qtype; if(qtype == 1) { ll x, d, w; cin >> x >> d >> w; x--; vb vis(n, false); queue<pll> q; q.push({x, 0ll}); while(!q.empty()) { auto [i, cd] = q.front(); q.pop(); if(vis[i]) continue; if(cd > d) continue; vis[i] = true; h[i] = (h[i] * w) % MOD; for(ll j : adj[i]) { q.push({j, cd + 1ll}); } } } else { ll x; cin >> x; x--; cout << h[x] << "\n"; } } cout << flush; 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...