#include <stdio.h> #include <iostream> #include <vector> #include <map> using namespace std; int peopleNum, N; int d[510][510]; int inviteNum; void floyd() { for(int k = 2; k <= peopleNum; k++) { for(int j = 2; j <= peopleNum; j++) { if(d[1][k] + d[k][j] < d[1][j]) { d[1][j] = d[1][k] + d[k][j]; } } } } int main(void) { // freopen("B5567_input.txt", "r", stdin); cin >> peopleNum >> N; for(int i = 1; i <= peopleNum; i++) { for(int j = 1; j <= peopleNum; j++) { d[i][j] = 199999999; } } for(int i = 1; i <= N; i++) { int from, to; cin >> from >> to; d[from][to] = 1; d[to][from] = 1; } floyd(); for(int i = 2; i <= peopleNum; i++) { // 1번 상근이와의 거리가 2 이하인 동기의 수 체크 if(d[1][i] <= 2) { inviteNum++; } } cout << inviteNum; return 0; } | cs |
'Baekjoon > Graph' 카테고리의 다른 글
[백준 1991] 트리 순회 (Tree) (C/C++) (0) | 2020.02.16 |
---|---|
[백준 1507] 궁금한 민호 (Floyd-Warshall) (C/C++) (★★) (0) | 2020.02.08 |
[백준 11404] 플로이드 (Floyd-Warshall) (C/C++) (0) | 2020.02.07 |
[백준 2644] 촌수계산 (BFS/Floyd-Warshall) (C/C++) (0) | 2019.12.04 |
[백준 1613] 역사 (Floyd-Warshall) (C/C++) (★) (0) | 2019.11.20 |