Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <fstream>
- #include <iostream>
- #include <algorithm>
- using namespace std ;
- ifstream f("lant.in");
- ofstream g("lant.out");
- int a[50][50] ;
- int n , m , p , q , r , gata = 0 ;
- int P[50] , X[50] ;
- void citire()
- {
- f >> n >> m ;
- for( int i = 1 ; i <= m ; ++i )
- {
- int x , y ;
- f >> x >> y;
- a[x][y] = a[y][x] = 1 ;
- }
- f >> p >> q >> r ;
- }
- void afis( int k )
- {
- for ( int i = 1 ; i <= k ; ++i )
- g << X[i] << " " ;
- g << "\n" ;
- gata = 1 ;
- }
- void back( int k )
- {
- if( gata == 0 )
- {
- for( int i = 1 ; i <= n ; ++i )
- if( !P[i] && a[X[k-1]][i] == 1 && gata == 0 )
- {
- X[k] = i ;
- P[i] = 1 ;
- if( i == q )
- {
- int ok = 1 ;
- for ( int j = 2 ; j < k && ok ; ++j )
- if ( X[j] == r )
- ok = 0 ;
- if ( !ok )
- afis ( k ) ;
- }
- else
- back ( k + 1 ) ;
- P[i] = 0 ;
- }
- }
- }
- int main()
- {
- citire();
- //initializam cu p
- X[1] = p ;
- P[p] = 1 ;
- back ( 2 ) ;
- f.close();
- g.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement