Submission #1369472

#TimeUsernameProblemLanguageResultExecution timeMemory
1369472ezzzayRegions (IOI09_regions)C++20
14 / 100
8071 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];
int L[N],R[N];
map<int,int>rg[N];
int id=1;
void dfs(int a){
    L[a]=id++;
    for(auto b:v[a]){
        dfs(b);
    }
    R[a]=id++;
}
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);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            if(L[i]<=L[j] and R[j]<=R[i]){
                rg[col[i]][col[j]]++;
            }
        }
    }
    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...