#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int MAXN = 100001, MAXM = 100001; int first[MAXN], nexte[MAXM]; int u[MAXN], v[MAXN]; int T, M, ID; int ans; int vis[MAXN]; void dfs(int s) { for(int i = first[s]; i != -1; i = nexte[i]) if(!vis[v[i]]) { vis[v[i]] = 1; dfs(v[i]); ans++; } } int main() { //freopen("in.txt", "r", stdin); scanf("%d", &T); for(int t = 1; t <= T; t++) { memset(first, -1, sizeof(first)); scanf("%d%d", &M, &ID); for(int i = 0; i < M; i++) { scanf("%d%d", &v[i], &u[i]); nexte[i] = first[u[i]]; first[u[i]] = i; } ans = 0; memset(vis, 0, sizeof(vis)); vis[ID] = 1; dfs(ID); printf("Case #%d: %d\n", t, ans); } return 0; } /************************************************************** Problem: 2235 User: admin Language: C++ Result: Accepted Time:197 ms Memory:4372 kb ****************************************************************/