제출 #1316981

#제출 시각아이디문제언어결과실행 시간메모리
1316981aaaaaaaaRegions (IOI09_regions)C++20
0 / 100
140 ms196608 KiB
#include <bits/stdc++.h> using namespace std; const int mxN = 2e5 + 10; const int mxR = 305; vector<int> adj[mxN]; int ans[mxR][mxR], freq[mxN], r[mxN]; void dfs(int u = 1){ freq[r[u]] += 1; vector<int> x(mxR + 10, 0); for(int j = 0; j < mxR; ++j) x[j] = freq[j]; for(auto it : adj[u]) dfs(it); for(int j = 0; j < mxR; ++j) ans[r[u]][j] += freq[j] - x[j]; } signed main(){ ios::sync_with_stdio(0); cin.tie(nullptr); cout.tie(nullptr); int n, k, q; cin >> n >> k >> q >> r[1]; for(int i = 2, p; i <= n; ++i){ cin >> p >> r[i]; adj[p].push_back(i); } dfs(); while(q--){ int r1, r2; cin >> r1 >> r2; cout << ans[r1][r2] << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...