제출 #102115

#제출 시각아이디문제언어결과실행 시간메모리
102115figter001Regions (IOI09_regions)C++17
30 / 100
1279 ms131072 KiB
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
const int nax = 2e5 + 50;
const int rax = 510;

int r[nax],ans[rax][rax];
int n,R,q;
vector<int> g[nax];

vector<int> dfs(int u,int p){
	vector<int> cur(R+1);
	for(int v : g[u]){
		if(v == p)
			continue;
		vector<int> tmp = dfs(v,u);
		cur[r[v]]++;
		for(int i=1;i<=R;i++)
			cur[i] += tmp[i];
	}
	for(int i=1;i<=R;i++)
		ans[r[u]][i] += cur[i];
	return cur;
}

int main(){
	cin>>n>>R>>q;
	cin>>r[1];
	for(int i=2;i<=n;i++){
		int p;
		cin>>p>>r[i];
		g[p].push_back(i);
	}
	dfs(1,0);
	int a,b;
	for(int i=0;i<q;i++){
		cin>>a>>b;
		cout << ans[a][b] << endl;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...