#include <cstdio>
#include <algorithm>
#include <vector>
#include <stack>
#define MAX_N 32000
using namespace std;
vector<vector<int>> vt;
stack<int> st;
int n, m, x, y, visited[ MAX_N + 1];
void dfs(int v)
{
visited[v] = true;
for (auto i : vt[v]) //auto는 변수형을 초기화의 값으로 자동으로 지정해주는 역할
{
if (visited[i])
continue;
dfs(i);
}
st.push(v);
}
int main(void){
scanf("%d %d", &n, &m);
vt.resize(n + 1);
for (int i = 0; i < m; i++){
scanf("%d%d", &x, &y);
vt[x].push_back(y); //vector의맨 끝에 요소를 삽입
}
for (int i = 1; i <= n; i++){
if (!visited[i])
dfs(i);
}
while (st.size()){
printf("%d ", st.top());
st.pop();
}
return 0;
}
//auto a = 55; //int 형
//auto b = 11.5; // float형
//auto c = 'c'; //char형
'이것저것' 카테고리의 다른 글
nqueen 알고리즘 (0) | 2017.10.31 |
---|---|
백준 14499번 주사위굴리기 (0) | 2017.10.18 |
c언어 dfs bfs 코드 (0) | 2017.09.30 |
옛날 웝페이지를 볼 수 있는 온라인 디지털 도서관, 인터넷 아카이브! (0) | 2017.08.21 |
창업의 성공과 실패관리 (0) | 2017.06.10 |
댓글