Submission #1369350

#TimeUsernameProblemLanguageResultExecution timeMemory
1369350ezzzayRegions (IOI09_regions)C++20
13 / 100
533 ms196608 KiB
#include<bits/stdc++.h>
using namespace std;
#define ff first
#define ss second
#define pb push_back
int n,r,q;
const int N=2e5+5;
int col[N];
vector<int>v[N];
map<int,int>mp[N];
map<int,int>rg[N];
void dfs(int a){
    mp[a][col[a]]=1;
    for(auto b:v[a]){
        dfs(b);
        for(auto p:mp[b]){
            mp[a][p.ff]+=p.ss;
            if(p.ff!=col[a]){
                rg[col[a]][p.ff]+=p.ss;
            }
        }
    }
}
signed main(){
    cin>>n>>r>>q;
    cin>>col[1];
    for(int i=2;i<=n;i++){
        int p;
        cin>>p>>col[i];
        v[p].pb(i);
    }
    dfs(1);
    while(q--){
        int a,b;
        cin>>a>>b;
        cout<<rg[a][b]<<endl;
    }
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...