func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxN = 100010;   int n, m, k, q;   vector<int> G[maxN];   int pre[maxN], s[maxN], e[maxN], cnt[maxN], t;   bool nroot[maxN];   void dfs(int cur) {     s[cur] = ++t;     cnt[cur] = 1;     for (int i = 0; i < (int)G[cur].size(); i++) {       int nxt = G[cur][i];       dfs(nxt);       cnt[cur] += cnt[nxt];     }     e[cur] = t;   }   int main(int argc, char** argv) {     cin >> n >> m >> k >> q;     int a, b;     for (int i = 0; i < k; i++) {       cin >> a >> b;       if (pre[b]) {         G[pre[b]].push_back(a);         nroot[a] = true;       }       pre[b] = a;     }     for (int i = 1; i <= n; i++) {       if (!nroot[i]) dfs(i);     }     for (int i = 0; i < q; i++) {       cin >> a >> b;       cout << ((s[a] < s[pre[b]] && e[a] >= e[pre[b]]) ? cnt[a] : 0) <<   n ;     }     return 0;   }   