728x90
반응형
https://www.acmicpc.net/problem/2644
2644번: 촌수계산
사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어
www.acmicpc.net
#include <iostream>
#include <queue>
using namespace std;
int n, m;
int map[101][101];
int visit[101];
int depth[101];
void bfs(int start){
visit[start] = 1;
queue<int> q;
q.push(start);
while(!q.empty()){
int node = q.front();
q.pop();
visit[node] = 1;
for(int i = 1; i <= n; i++){
if(!visit[i] && map[node][i] == 1){
q.push(i);
visit[i] = 1;
depth[i] = depth[node] + 1;
}
}
}
}
int main() {
int a, b, x, y;
cin >> n;
cin >> a >> b;
cin >> m;
for(int i = 0; i < m; i++){
cin >> x >> y;
map[x][y] = map[y][x] = 1;
}
bfs(a);
if(depth[b] == 0) cout << -1 << endl;
else cout << depth[b] << endl;
return 0;
}
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 10988번 팰린드롬인지 확인하기 (C++) (0) | 2022.01.28 |
---|---|
[BOJ] 7576번 토마토 (C++) (0) | 2022.01.28 |
[BOJ] 1914번 하노이 탑 (C++) (0) | 2022.01.13 |
[BOJ] 10826번 피보나치 수 4 (C++) (0) | 2022.01.11 |
[BOJ] 10757번 큰 수 A+B (C++) (0) | 2022.01.11 |