제출 #910138

#제출 시각아이디문제언어결과실행 시간메모리
910138vjudge1Sprinkler (JOI22_sprinkler)C++17
0 / 100
799 ms22136 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; vector<vector<ll>> tree; vector<ll> initialHeights; vector<bool>visited; void dfs(ll current, ll parent, ll L, ll W, ll pos, ll size) { if(size==pos)return; ll newHeight = (initialHeights[current] * W) % L; initialHeights[current] = newHeight; visited[current]=true; for (ll neighbor : tree[current]) { if (neighbor != parent&&!visited[neighbor]) { dfs(neighbor, current, L, W,pos+1,size); } } } int main() { ll N, L; cin >> N >> L; tree.resize(N + 1); initialHeights.resize(N + 1); for (ll i = 1; i <= N - 1; ++i) { ll A, B; cin >> A >> B; tree[A].push_back(B); tree[B].push_back(A); } for (ll i = 1; i <= N; ++i) { cin >> initialHeights[i]; } ll Q; cin >> Q; for (ll i = 1; i <= Q; ++i) { ll T; cin >> T; if (T == 1) { ll X, D, W; cin >> X >> D >> W; visited.resize(N,false); dfs(X, 0, L, W,0,D); } else if (T == 2) { ll X; cin >> X; cout << initialHeights[X] << endl; } } 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...