#include <stdio.h>
#include <cstring>
#include <algorithm>
#include <queue>
using namespace std;
#define MAX 1001
bool visit[MAX];
vector <int> arr[MAX];
queue <int> q;
void DFS(int x)
{
visit[x] = true;
printf("%d ", x);
for (int i : arr[x])
{
if (!visit[i])
{
DFS(i);
}
}
}
void BFS(int s)
{
q.push(s);
visit[s] = true;
while (!q.empty())
{
int i = q.front();
q.pop();
printf("%d ", i);
for (int j : arr[i])
{
if (!visit[j])
{
q.push(j);
visit[j] = true;
}
}
}
}
int main(void)
{
int n, m, v;
scanf("%d %d %d", &n, &m, &v);
for (int i = 0; i < m; i++)
{
int s, e;
scanf("%d %d", &s, &e);
arr[s].push_back(e);
arr[e].push_back(s);
}
for (int i = 1; i <= n; i++)
{
sort(arr[i].begin(), arr[i].end());
}
DFS(v);
printf("\n");
memset(visit, 0, sizeof(visit));
BFS(v);
}
'프로그래밍 문제 > BOJ(백준 온라인 저지)' 카테고리의 다른 글
[BOJ 2667번] 단지번호붙이기(C++) (0) | 2020.09.18 |
---|---|
백준 / 10818 / 최소, 최대 / C / * (0) | 2020.09.18 |
백준 15552/빠른 A+B/C (0) | 2020.09.17 |
[BOJ 2606번] 바이러스(JAVA) (0) | 2020.09.16 |
[BOJ 7579번] 앱(JAVA) (0) | 2020.09.15 |