제출 #785387

#제출 시각아이디문제언어결과실행 시간메모리
785387devariaotaSprinkler (JOI22_sprinkler)C++17
0 / 100
1478 ms1048576 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define fi first #define se second #define pb push_back ll n,l; vector<int> adj1[200005], adj2[200005]; vector<ll> h(200005); int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>l; for(int i=1;i<n;i++){ int u,v; cin>>u>>v; adj1[u].pb(v); adj2[u].pb(v); adj1[v].pb(u); adj2[v].pb(u); } for(int i=1;i<=n;i++) { cin>>h[i]; } // precomp adjs for(int i=1;i<=n;i++){ for(int j : adj1[i]){ for(int k : adj1[j]){ if(k != i) adj2[i].pb(k); } } } int q; cin>>q; while(q--){ int op; cin>>op; if(op==1){ ll x, d, w; cin >> x >> d >> w; if(d==0) h[x]=h[x]*w%l; if(d==1){ h[x] = h[x]*w%l; for(int i : adj1[x]){ h[i] = h[i]*w%l; } } else if(d==2){ h[x] = h[x]*w%l; for(int i : adj2[x]){ h[i] = h[i]*w%l; } } } else{ int x; cin>>x; cout<<h[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...