Cod sursa(job #2303258)

Utilizator Andrei-27Arhire Andrei Andrei-27 Data 15 decembrie 2018 22:02:47
Problema Dusman Scor 80
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.96 kb
#include <fstream>

using namespace std ;

const int NR = 1005 ;

ifstream f ("dusman.in") ;
ofstream g ("dusman.out") ;

int d [ NR ][ NR ] ;
int st [ NR ] , sw , cnt , nrsol , n , k ;
bool viz [ NR ] = { false } ;

void bk ( int pas )
{
    viz [ pas ] = true ;
    st [ ++ cnt ] = pas ;
    if ( cnt == n ) {       nrsol ++ ;
                            cnt -- ;
                            viz [ pas ] = false ;
                            if ( nrsol == k ) { for ( int i = 1 ; i <= n ; ++ i ) g << st [ i ] << " " ; sw = 1 ; }
                            return ; }
    for ( int i = 1 ; i <= n ; ++ i )   { if ( !d [ i ][ pas ] && !viz [ i ] )  { bk ( i ) ; if ( sw ) return ; } }
    cnt -- ;
    viz [ pas ] = false ;
}

int main ()
{
    int  m ; f >> n >> k >> m ;
    while ( m -- )  { int a , b ; f >> a >> b ; d [ a ][ b ] = 1 ; d [ b ][ a ] = 1 ; }

    for ( int i = 1 ; i <= n ; ++ i )   { bk ( i ) ; if ( sw ) return 0 ; }

}