Submission #927256

#TimeUsernameProblemLanguageResultExecution timeMemory
927256LudisseyRegions (IOI09_regions)C++14
0 / 100
115 ms131072 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int N,R,Q; vector<vector<int>> child; vector<int> r; vector<vector<int>> cr; vector<vector<int>> ans; void dfs(int x){ for (auto u : child[x]) { dfs(u); for (int i = 0; i < R; i++) { cr[x][i]+=cr[u][i]; } } for (int i = 0; i < R; i++) ans[r[x]][i]+=cr[x][i]; cr[x][r[x]]++; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cin >>N>>R>>Q; child.resize(N+1); cr.resize(N+1,vector<int>(R,0)); ans.resize(R,vector<int>(R,0)); r.resize(N+1); cin >> r[0]; r[0]--; for (int i=1; i < N; i++) { int p; cin >> p >> r[i]; r[i]--; child[p-1].push_back(i); } dfs(0); for (int i = 0; i < Q; i++) { int e1,e2; cin>>e1>>e2; e1--; e2--; int as=ans[r[e1]][r[e2]]; cout << as << "\n"; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...