#include <bits/stdc++.h>
using namespace std;
#define INT long long int 

INT n,m,vf;
bool chk[1010];
queue<INT> q;
bool visited[1010];
INT dis[1010];

void dfs(vector<INT> adj[], INT x)
{
  if(chk[x])  return;
  chk[x] = true;
  cout << x << " ";
  for(auto u: adj[x])
    {
      dfs(adj, u);
    }
}

void bfs(vector<INT> adj[], INT x)
{
  visited[x] = true;
  q.push(x);

  while(!q.empty())
    {
      INT s = q.front();
      q.pop();
      cout << s << " ";
      
      for(auto u: adj[s])
        {
          if(!visited[u])  
          {
            visited[u] = true;
            q.push(u);
          }
        }
    }
  
}

int main()
{
  cin >> n >> m >> vf;

  vector<INT> adj[n+1];
  for(int i=0; i<m; i++)
    {
      INT u = 0, v = 0;
      cin >> u >> v;
      adj[u].push_back(v);
      adj[v].push_back(u);
    }
  for(int i=1; i<n+1; i++)
    {
      sort(adj[i].begin(), adj[i].end()); 
    }
  
  dfs(adj,vf);
  cout << endl;
  bfs(adj,vf);

  return 0;
}

'코딩 일지 > baekjoon' 카테고리의 다른 글

2630  (0) 2023.12.28
2447  (0) 2023.12.28
1655 가운데를 말해요  (0) 2023.08.22
12865 - 평범한 배낭  (0) 2023.08.17
1463 - 1로 만들기  (0) 2023.02.11

+ Recent posts