Written by
nodejs-style
on
on
[2252] 줄 세우기
[2252] 줄 세우기
#include < stdio.h >
#include < algorithm >
#include < vector >
using namespace std ;
int n, m;
vector < int > adj[ 32001 ];
int a[ 32001 ];
int d[ 32001 ];
bool check[ 32001 ];
int main( void ) {
int i, j, cur = 0 , cnt = 0 ;
scanf ( "%d %d" , & n, & m);
for (i = 0 ; i < m; i + + ) {
int x, y;
scanf ( "%d %d" , & x, & y);
adj[x]. push_back (y);
d[y] + + ;
}
for (i = 1 ; i < = n; i + + ) {
for (j = 1 ; j < = n; j + + ) {
if (d[j] = = 0 & & check[j] = = false ) {
cur = j;
cnt + + ;
break ;
}
}
a[cnt] = cur;
check[cur] = true ;
for ( auto x : adj[cur]) {
d[x] - - ;
}
}
for (i = 1 ; i < = n; i + + )
printf ( "%d " , a[i]);
return 0 ;
}
from http://dizlet.tistory.com/30 by ccl(A) rewrite - 2021-08-31 01:26:09