제출 #405621

#제출 시각아이디문제언어결과실행 시간메모리
405621victoriadRegions (IOI09_regions)C++14
0 / 100
8098 ms131076 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(int nodo,vector<vector<int> >&g,vector<bool>&vi,vector<int>&b){
     vi[nodo]=true;
     b[region[nodo]]++;
     for(int c:g[nodo]){
         if(!vi[c]){
             dfs(c,g,vi,b);
         }
     }
 }
 
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL);
 
  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;
  vector<vector<int> >bus(R);
  vector<int>vacio(R,0);
  for(int i=0;i<R;i++)bus[i]=vacio;
 
  for(int i=1;i<N;i++){
    cin>>a>>b;
    a--;
    b--;
    region[i]=b;
    bus[region[0]][b]++;
    g[a].push_back(i);
  }
 
 
  for(int i=1;i<N;i++){
      int j=region[i];
      vector<bool>vi(N,false);
      dfs(i,g,vi,bus[j]);
  }
  for(int i=0;i<Q;i++){
      cin>>a>>b;
        a--;
        b--;
      cout<<bus[a][b]<<"\n";
  }
   
    
  return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...