Submission #785466

#TimeUsernameProblemLanguageResultExecution timeMemory
785466TakeMeSprinkler (JOI22_sprinkler)C++14
12 / 100
475 ms22168 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], updRange[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); } for(ll i = 1; i <= n; i++){ cin >> a[i]; } find_par(1, 0); memset(updRange, -1, sizeof(updRange)); cin >> q; while(q--){ ll tp, x, d, w; cin >> tp; if(tp == 1){ cin >> x >> d >> w; upd_val(x, d); } else{ cin >> x; if(que_val(x, 0)){ cout << 0 << '\n'; } else{ cout << a[x] << '\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...