Pagini recente » Cod sursa (job #470229) | Cod sursa (job #2639809) | Cod sursa (job #3228573) | Cod sursa (job #736953) | Cod sursa (job #136309)
Cod sursa(job #136309)
#include <stdio.h>
#define in "dusman.in"
#define out "dusman.out"
#define NMAX 1001
int n, K, M;
int A[NMAX][NMAX];//A[i][j] = 1 daca i si j sunt dusmani !
int sel[NMAX], tata[NMAX];
void Dusman( int i );
void Write();
int main()
{
freopen( in, "r", stdin );
freopen( out, "w", stdout );
scanf( "%d%d%d", &n, &K, &M );
int i, j;
for ( ; M > 0; M-- )
{
scanf( "%d%d", &i, &j );
A[i][j] = A[j][i] = 1;
}
Dusman( 1 );
return 0;
}
void Write()
{
int i;
for ( i = 1; i <= n; ++i )
printf( "%d ", tata[i] );
printf( "\n" );
}
void Dusman( int i )
{
if ( K < 0 ) return;
if ( i > n )
{
K--;
if ( K == 0 ) Write();
return;
}
int j;
for ( j = 1; j <= n; ++j )
{
if ( !sel[j] && !A[tata[i-1]][j] )
{
sel[j] = 1;
tata[i] = j;
Dusman( i + 1 );
sel[j] = 0;
}
}
}