제출 #892221

#제출 시각아이디문제언어결과실행 시간메모리
892221vjudge1Sprinkler (JOI22_sprinkler)C++17
3 / 100
134 ms30996 KiB
#include <bits/stdc++.h> using namespace std; #define all(x) x.begin(), x.end() #define ar array #define pb push_back #define ln '\n' #define int long long using i64 = long long; template <class F, class _S> bool chmin(F &u, const _S &v){ bool flag = false; if ( u > v ){ u = v; flag |= true; } return flag; } template <class F, class _S> bool chmax(F &u, const _S &v){ bool flag = false; if ( u < v ){ u = v; flag |= true; } return flag; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, L; cin >> n >> L; vector <vector<int>> G(n); for ( int i = 0; i + 1 < n; i++ ){ int u, v; cin >> u >> v; --u, --v; G[u].pb(v), G[v].pb(u); } vector <int> h(n); for ( auto &u: h ) cin >> u; int q; cin >> q; vector <ar<int,4>> Q(q); for ( auto &[t, x, d, w]: Q ){ cin >> t >> x; --x; if ( t == 1 ){ cin >> d >> w; } } if ( min(n, q) <= 1000 ){ // subtask #1 for ( auto &[t, x, d, w]: Q ){ if ( t == 1 ){ auto dfs = [&](auto dfs, int u, int p, int D) -> void{ h[u] = h[u] * w % L; if ( D != d ){ for ( auto &v: G[u] ){ if ( v != p ){ dfs(dfs, v, u, D + 1); } } } }; dfs(dfs, x, -1, 0); } else cout << h[x] << ln; } return 0; } cout << '\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...