1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| #include<stdio.h> int main(void) { int i = 0, j = 0, n = 0, m = 0, a = 0, b = 0, cur = 0, book[101] = { 0 }, e[101][101] = { 0 }; int que[10001] = { 0 }, d[101] = { 0 },head = 0, tail = 0; scanf("%d%d", &n, &m); for (i = 1; i <= n; i++) { for (j = 1; j <= n; j++) { if (j == i) { e[i][j] = 0; } else { e[i][j] = 99999999; } } } for (i = 1; i <= m; i++) { scanf("%d%d", &a, &b); e[a][b] = 1; e[b][a] = 1; } head = 1; tail = 1; que[tail] = 1; tail++; book[1] = 1; while (head<tail&&tail<=n) { cur = que[head]; for (i = 1; i <= n; i++) { if (e[cur][i] == 1 && book[i] == 0) { d[cur]++; que[tail] = i; tail++; book[i] = 1; } if (tail > n) { break; } } head++; } for (i = 1; i <tail; i++) { printf("%d ", que[i]); } printf("\n"); for (i = 1; i < tail; i++) { printf("%d ", d[i]); } return 0; }
|