VioletaBabel

1389번: 케빈 베이컨의 6단계 법칙 본문

백준/백준-C++
1389번: 케빈 베이컨의 6단계 법칙
Beabletoet 2017. 6. 23. 23:04
#include <cstdio>
#include <algorithm>
using namespace std;
#define inf 1000000000
int main()
{
int n, m, route[101][101], a, b, ans = 1;
fill_n(&route[0][0], 101 * 101, inf);
for (scanf("%d %d", &n, &m); m--; route[a][b] = 1, route[b][a] = 1)
scanf("%d %d", &a, &b);
for (int i = 1; i <= n; ++i)
route[i][0] = 0;
for (int k = 1; k <= n; ++k)
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
route[i][j] = min(route[i][j], route[i][k] + route[k][j]);
for (int i = 1; i <= n; ++i)
{
for (int j = 1; j <= n; ++j)
{
if (i == j)
continue;
if (route[i][j] < inf)
route[i][0] += route[i][j];
}
if (route[ans][0] > route[i][0])
ans = i;
}
printf("%d", ans);
}


'백준 > 백준-C++' 카테고리의 다른 글

1009번: 분산처리  (0) 2017.09.02
1026번: 보물  (0) 2017.09.02
11403번: 경로 찾기  (0) 2017.06.23
11404번: 플로이드  (0) 2017.06.23
2042번: 구간 합 구하기  (0) 2017.06.19
Comments