제출 #785580

#제출 시각아이디문제언어결과실행 시간메모리
785580TakeMeSprinkler (JOI22_sprinkler)C++14
9 / 100
239 ms24800 KiB
/* Quick Note : * Jangan Mikir Lama - lama, sampahin dulu aja kalo OI * Always Try to reset */ #include <bits/stdc++.h> using namespace std; #define ff first #define ss second #define pb push_back #define debug(val) cerr << "The value of " << #val << " is = " << val << '\n'; typedef long double ld; typedef long long ll; typedef unsigned long long ull; const ld PI = 4*atan((ld)1); const ll mod = 1e9 + 7; const ll inf = 922337203685477; const ll nax = 2e5 + 5; ll n, q, l; ll a[nax], mul[nax], par[nax]; vector<vector<ll>> v(nax); void find_par(ll idx, ll bfr){ par[idx] = bfr; for(auto it : v[idx]){ if(it != bfr){ find_par(it, idx); } } } //void upd_val(ll x, ll d){ //if(d < 0 || x == 0) return; //updRange[x] = max(updRange[x], d); //upd_val(par[x], d - 1); //} //ll que_val(ll x, ll d){ //if(x == 0 || d > 45) return 0; //if(updRange[x] >= d){ //return 1; //} //else{ //return que_val(par[x], d + 1); //} // } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); //freopen("test.in", "r", stdin); //freopen("test.out", "w", stdout); cin >> n >> l; for(ll i = 1; i < n; i++){ ll x, y; cin >> x >> y; v[x].pb(y); v[y].pb(x); } mul[0] = 1; for(ll i = 1; i <= n; i++){ cin >> a[i]; mul[i] = 1; } find_par(1, 0); cin >> q; while(q--){ ll tp, x, d, w; cin >> tp; if(tp == 1){ cin >> x >> d >> w; if(d == 0){ a[x] *= w; a[x] %= l; } else if(d == 1){ a[x] *= w; a[x] %= l; mul[x] *= w; mul[x] %= l; a[par[x]] *= w; a[par[x]] %= l; } } else{ cin >> x; ll ans = a[x]; ans = (ans * mul[par[x]]) % l; cout << ans << '\n'; } } }
#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...