Pagini recente » Cod sursa (job #2469022) | Cod sursa (job #46227) | Cod sursa (job #2420661) | Cod sursa (job #1120462) | Cod sursa (job #2325093)
#include <bits/stdc++.h>
#define pb push_back
#define pf push_front
using namespace std ;
const int NR = 50001 ;
ifstream f ( "sortaret.in" ) ;
ofstream g ( "sortaret.out" ) ;
vector < int > v [ NR ] ;
deque < int > st ;
bool viz [ NR ] ;
int sol [ NR ] , cnt , n , m ;
void dfs ( int nod )
{
viz [ nod ] = true ;
sol [ ++ cnt ] = nod ;
for ( size_t i = 0 ; i < v [ nod ].size() ; ++ i )
{
int vecin = v [ nod ][ i ] ;
if ( !viz [ vecin ] )
dfs ( vecin ) ;
}
}
void input ()
{
f >> n >> m ;
while ( m -- )
{
int x , y ; f >> x >> y ;
v [ x ].pb ( y ) ;
v [ y ].pb ( x ) ;
}
}
int main ()
{
int i ;
input() ;
for ( i = 1 ; i <= n ; ++ i )
if ( !viz [ i ] )
{
dfs ( i ) ;
for ( int k = 1 ; k <= cnt ; ++ k )
st.pf ( sol [ k ] ) , cout << sol [ k ] << " " ;
cnt = 0 ;
}
for ( size_t j = 0 ; j < st.size() ; ++ j ) g << st [ j ] << " " ;
}