Submission #892311

#TimeUsernameProblemLanguageResultExecution timeMemory
892311vjudge1Sprinkler (JOI22_sprinkler)C++17
3 / 100
11 ms6492 KiB
#include <bits/stdc++.h>
#define int long long
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define pb push_back
using namespace std;
const int N=1e5+5;
vector <int> g[N];
int h[N];
signed main(){
    int n,l;
    cin>>n>>l;
    for(int i=0;i<n-1;i++){
        int u,v;
        cin>>u>>v;
        g[u].pb(v);
        g[v].pb(u);
    }
    for(int i=1;i<=n;i++){
        cin>>h[i];
    }
    int q;
    cin>>q;
    while(q--){
        int type,x,d,w;
        cin>>type;
        if(type==1){
            cin>>x>>d>>w;
            queue <int> q;
            vector <int> dis(n+1,-1);
            q.push(x);
            dis[x]=0;
            while(!q.empty()){
                int v=q.front();
                q.pop();
                for(auto to : g[v]){
                    if(dis[to]==-1){
                        dis[to]=dis[v]+1;
                        q.push(to);
                    }
                }
            }
            for(int i=1;i<=n;i++){
                if(dis[i]<=d){
                    h[i]=(h[i]*w)%l;
                }
            }
        }
        else{
            cin>>x;
            cout<<h[x]<<"\n";
        }
    }
}

#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...