Submission #1263814

#TimeUsernameProblemLanguageResultExecution timeMemory
1263814ereringSprinkler (JOI22_sprinkler)C++20
0 / 100
526 ms84924 KiB
#include <bits/stdc++.h> using namespace std; #define int long long #define endl '\n' #define pb push_back const int N=2e5+5,inf=1e9,MOD=1e9+7; int n,l,par[N],h[N],suff[N][42]; vector<int> adj[N]; void dfs(int node,int p){ par[node]=p; for(auto i:adj[node]){ if(i!=p)dfs(i,node); } } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n>>l; for(int i=0;i<n-1;i++){ int x,y; cin>>x>>y; adj[x].pb(y); adj[y].pb(x); } dfs(1,0); for(int i=1;i<=n;i++){ cin>>h[i]; for(int j=0;j<42;j++)suff[i][j]=1; } int q; cin>>q; while(q--){ int type; cin>>type; if(type==1){ int x,d,w; cin>>x>>d>>w; while(d>=0){ suff[x][d]*=w; suff[x][d]%=l; d--; if(d>=0){ suff[x][d]*=w; suff[x][d]%=l; } if(x!=1)x=par[x]; else d--; } } else{ int x; cin>>x; int ans=1,d=0; while(x>0 && d<41){ ans*=suff[x][d]; ans%=l; d++; x=par[x]; } cout<<ans<<endl; } } }
#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...