Submission #785394

#TimeUsernameProblemLanguageResultExecution timeMemory
785394andecaandeciSprinkler (JOI22_sprinkler)C++17
0 / 100
4061 ms27500 KiB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define fi first
#define se second
#define pb push_back

const int sez = 2e5+5;

ll n,l;
vector<int> adj1[sez], adj2[sez];
vector<ll> h(sez);

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    cin>>n>>l;
    for(int i=1;i<n;i++){
        int u,v;
        cin>>u>>v;
        adj1[u].pb(v);
        adj2[u].pb(v);
        adj1[v].pb(u);
        adj2[v].pb(u);
    }
    for(int i=1;i<=n;i++) {
        cin>>h[i];
    }

    // precomp adjs
    // for(int i=1;i<=n;i++){
    //     for(int j : adj1[i]){
    //         for(int k : adj1[j]){
    //             if(k != i) adj2[i].pb(k);
    //         }
    //     }
    // }

    // for(int i=1;i<=n;i++){ // cek aja
    //     cout<<"::"<<i<<" = ";
    //     for(int j: adj2[i]){
    //         cout<<j<<'	';
    //     }
    //     cout<<'\n';
    // }

    int q; cin>>q;
    while(q--){
        int op;
        cin>>op;
        if(op==1){
            ll x, d, w;
            cin >> x >> d >> w;
            if(d==0) h[x]=h[x]*w%l;
            if(d==1){
                h[x] = h[x]*w%l;
                for(int i : adj1[x]){
                    h[i] = h[i]*w%l;
                }
            }
            else if(d==2){
                h[x] = h[x]*w%l;
                for(int i : adj2[x]){
                    h[i] = h[i]*w%l;
                }
            }
        }
        else{
            int x; cin>>x;
            cout<<h[x]<<'\n';
        }
    }
    

    return 0;
}

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