Submission #1273979

#TimeUsernameProblemLanguageResultExecution timeMemory
1273979oswaldzzSprinkler (JOI22_sprinkler)C++20
3 / 100
4094 ms19472 KiB
#include <bits/stdc++.h>
using namespace std;
#define int long long
#define nl endl
#define hehe ios_base::sync_with_stdio(0); cin.tie(NULL); cout.tie(NULL)  ;
 
// const int mod = 998244353;
const int mod = 1e9+7;
const int M = 2e5+5;

int n,l; 
vector < int > adj[M] = {};
int h[M] = {};

void bfs(int x, int d, int w){
    queue < pair < int , pair < int , int > > > q;
    q.push({x,{0,0}});
    while(!q.empty()){
        int cur = q.front().first;
        int dis = q.front().second.first;
        int pref = q.front().second.second;
        // cout << cur << ' ' << dis << ' ' << pref << nl;
        if(dis <= d){
            h[cur]*=w;
            h[cur]%=l;
        }
        q.pop();
        if(dis > d)continue;
        for(auto nxt : adj[cur]){
            if(nxt == pref)continue;
            else{
                q.push({nxt,{dis+1,cur}});
            }
        }
    }
}

void solve(){
    cin >> n >> l;
    for(int i = 1; i<=n-1; i++){
        int u,v; cin >> u >> v;
        adj[u].push_back(v);
        adj[v].push_back(u);
    }   
    for(int i = 1; i<=n; i++){
        cin >> h[i];
    }
    int m; cin >> m;
    for(int i = 1; i<=m; i++){
        int t; cin >> t;
        if(t==1){
            int x,d,w; cin >> x >> d >> w;
            bfs(x,d,w);
            // for(int j = 1; j<=n; j++){
            //     cout << h[j] << ' ';
            // }cout << nl;
        }
        else{
            int x; cin >> x;
            cout << h[x] << nl;
        }
    }
} 


signed main(){
    hehe
    // int t; cin >> t;
    int t = 1;
    while(t--){
        solve();
    }
}
#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...