Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Input:
- */
- /*
- Output:
- */
- #include <stdio.h>
- #define SIZE 102
- int Grid[SIZE][SIZE];
- int Visited[SIZE];
- int Child[SIZE];
- int N, E;
- void init()
- {
- int i, j;
- for (i = 0; i < SIZE; i++) for (j = 0; j < SIZE; j++)
- Grid[i][j] = 0;
- for (i = 0; i < SIZE; i++)
- Visited[i] = 0;
- }
- int dfs(int node, int parent)
- {
- int i;
- Visited[node] = 1;
- int size = 1;
- for (i = 0; i < SIZE; i++) {
- if (1 == Grid[node][i] && i != parent) {
- size += dfs(i, node);
- }
- }
- Child[node] = size;
- return Child[node];
- }
- int main()
- {
- freopen("input2.txt", "r", stdin);
- freopen("output2.txt", "w", stdout);
- int i, j, x, y;
- scanf("%d %d", &N, &E);
- init();
- for (i = 0; i < E; i++) {
- scanf("%d %d", &x, &y);
- Grid[x][y] = Grid[y][x] = 1;
- }
- dfs(0, -1);
- for (i = 0; i < SIZE; i++) {
- if (0 == Visited[i])
- continue;
- printf("%d ---> %d\n", i, Child[i]);
- }
- }
Add Comment
Please, Sign In to add comment