Submission #785526

#TimeUsernameProblemLanguageResultExecution timeMemory
785526amukkalirSprinkler (JOI22_sprinkler)C++17
3 / 100
4059 ms16524 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]; 


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 solve() {
    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]; 
    }
    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--) {
        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...