Submission #825230

#TimeUsernameProblemLanguageResultExecution timeMemory
825230serifefedartarRegions (IOI09_regions)C++17
10 / 100
652 ms131072 KiB
#include <bits/stdc++.h>
using namespace std;
 
#define fast ios::sync_with_stdio(0);cin.tie(0);
typedef long long ll;
#define f first
#define s second
#define MOD 1000000007
#define LOGN 20
#define MAXN 100005

vector<vector<int>> graph;
vector<vector<int>> rList;
vector<map<int,int>> mps;
vector<int> region;
void dfs(int node, int parent, map<int,int> here) {
	here[region[node]]++;
	mps[node] = here;
	for (auto u : graph[node]) {
		if (u == parent)
			continue;
		dfs(u, node, here);
	}
}

int main() {
    fast
    int N, R, Q, S, H;
    cin >> N >> R >> Q;

  	graph = vector<vector<int>>(N+1, vector<int>());
  	rList = vector<vector<int>>(R+1, vector<int>());
  	mps = vector<map<int,int>>(N+1, map<int,int>());
  	region = vector<int>(N+1);
  	cin >> region[1];	
  	rList[region[1]].push_back(1);

  	for (int i = 2; i <= N; i++) {
  		cin >> S >> region[i];
 		graph[S].push_back(i);
 		rList[region[i]].push_back(i);
  	}
  	dfs(1, 1, map<int,int>());

  	while (Q--) {
  		int r1, r2;
  		cin >> r1 >> r2;
  		int ans = 0;
  		for (auto u : rList[r2])
  			ans += mps[u][r1];
  		cout << ans << endl;
  	}
}

Compilation message (stderr)

regions.cpp: In function 'int main()':
regions.cpp:28:21: warning: unused variable 'H' [-Wunused-variable]
   28 |     int N, R, Q, S, H;
      |                     ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...