제출 #394129

#제출 시각아이디문제언어결과실행 시간메모리
394129victoriadRegions (IOI09_regions)C++14
12 / 100
8099 ms26844 KiB
#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <utility>
#include <queue>
#include <map>
#include <iomanip>
using namespace std;
 vector<int>region;
 void dfs(vector<vector<int> >&g,int nodo,int bus,vector<bool>&v,int & r){
   v[nodo]=true;
   if(region[nodo]==bus)r++;
   for(int c:g[nodo]){
     if(!v[c]){
       dfs(g,c,bus,v,r);
     }
   }
 }

int main(){
  int N,R,Q;
  cin>>N>>R>>Q;
  vector<vector<int> >g(N);
  g.clear();
  region.resize(N);
  int a,b;
  cin>>a;
  a--;
  region[0]=a;

  for(int i=1;i<N;i++){
    cin>>a>>b;
    a--;
    b--;
    region[i]=b;
    g[a].push_back(i);
  }
   
  for(int i=0;i<Q;i++){
    cin>>a>>b;
    a--;
    b--;
    int con=0;
    for(int k=0;k<N;k++){
      if(region[k]==a){
      vector<bool>v(N,false);
      dfs(g,k,b,v,con);
      }
    }
    cout<<con<<"\n";
    }
    
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...