Submission #1274178

#TimeUsernameProblemLanguageResultExecution timeMemory
1274178ttooppSprinkler (JOI22_sprinkler)C++20
3 / 100
4093 ms16540 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
//Sprinkler -> target:subtask 1,2,3

ll n, l, h[200003];
vector<int> vc[200003];

void dfs(int i, int par, int d, int w){
    h[i]=(h[i]*w)%l;
    if(d==0)return;
    for(int j=0; j<vc[i].size(); j++){
        if(vc[i][j]!=par){
            dfs(vc[i][j], i, d-1, w);
        }
    }
}

int main(){
    cin >> n >> l;
    for(int i=1; i<=n-1; i++){
        int a, b;
        cin >> a >> b;
        vc[a].push_back(b);
        vc[b].push_back(a);
    }
    for(int i=1; i<=n; i++){
        cin >> h[i];
    }
    int q;
    cin >> q;
    while(q--){
        int op;
        cin >> op;
        if(op==1){
            int x, d, w;
            cin >> x >> d >> w;
            dfs(x, x, d, w);
        }else {
            int x;
            cin >> x;
            cout << h[x]%l<<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...