Submission #785548

#TimeUsernameProblemLanguageResultExecution timeMemory
785548amukkalirSprinkler (JOI22_sprinkler)C++17
15 / 100
1178 ms25324 KiB
#include "bits/stdc++.h" using namespace std; typedef long long ll; #define pii pair<int,int> #define fi first #define se second #define pb push_back const int N = 2e5; long long h[N+5]; int n, l; vector<int> adj[N+5]; bool vis[N+5][45]; void dfs (int u, int prv, long long w, int dst) { if (dst < 0) return; h[u] *= w; h[u] %= l; //cerr << u << " lalala " << h[u] << endl; for (int v : adj[u]) { if (v==prv) continue; dfs(v, u, w, dst-1); } } void dfs4 (int u, int prv, long long w, int dst) { if (dst < 0) return; if (vis[u][dst]) return; vis[u][dst] = true; h[u] *= w; h[u] %= l; //cerr << u << " lalala " << h[u] << endl; for (int v : adj[u]) { if (v==prv) continue; dfs4(v, u, w, dst-1); } } void sub4() { int q; cin>>q; while (q--) { int tp; cin >> tp; if (tp == 1) { int x, d, w; cin >> x >> d >> w; dfs4(x, 0, w, d); } else { int x; cin >> x; cout << h[x] << endl; } } } void sub1() { int q; cin>>q; while (q--) { int tp; cin >> tp; if (tp == 1) { int x, d, w; cin >> x >> d >> w; dfs(x, 0, w, d); } else { int x; cin >> x; cout << h[x] << endl; } } } signed main () { int t=1; //scanf("%d", &t); while(t--) { cin >> n >> l; for(int i=1; i<n; i++) { int a, b; cin >> a >> b; adj[a].pb(b); adj[b].pb(a); } for (int i=1; i<=n; i++) { cin >> h[i]; } if (n <= 1000) sub1(); else sub4(); } }
#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...