/** * 广度优先 * @param {Graph} * @return {void} */ void BFS (Graph G) { if (G->kind == DG || G->kind == UDG) { BFS1(G,0); } else if (G->kind == DN || G->kind == UDN) { BFS2(G,0); } }
int main(int argc, char* argv[]) { Construct(argv[0]); BFS1(); BFS2(argv[0]); return 0; }
int main() { //freopen("input.txt", "r", stdin); char C[20]; gets(C); int a,b; if(sscanf(C,"%d %d",&a,&b) == 1) { int n = a, min_x = MAX, min_y = MAX, x, y; bool visited[MAX][MAX]; for(x = 0; x < MAX; x++) for(y = 0; y < MAX; y++) visited[x][y] = true; for(int i = 0; i < n; i++) { scanf("%d %d", &x, &y); if(i == 0) { min_x = x; min_y = y; } mas[x][y] = true; visited[x][y] = false; } printf("%d %d\n", min_x, min_y); BFS1(min_x, min_y,visited); } else { int x = a, y = b; int count = BFS2(x,y); printf("%d\n",count); for(int x = 1; x < MAX; x++) { for(int y = 1; y < MAX; y++) { if(mas[x][y]) printf("%d %d\n",x,y); } } } return 0; }