Pagini recente » Cod sursa (job #972866) | Cod sursa (job #3000843) | Cod sursa (job #2562085) | Cod sursa (job #208530) | Cod sursa (job #116508)
Cod sursa(job #116508)
#include <stdio.h>
#define NMax 1005
int n, m, k;
int a[NMax][NMax];
int uz[NMax];
int sol[NMax];
int count, ok = 1;
void citire();
void bkt( int x );
void afis();
int main()
{
int i;
citire();
for (i=1; i<=n; i++)
{
uz[i] = 1; sol[0] = i;
bkt( 1 );
uz[i] = 0;
}
return 0;
}
void afis()
{
int i;
FILE *g = fopen( "dusman.out", "wt" );
for (i=0; i<n; i++)
fprintf( g, "%d ", sol[i] );
}
void bkt( int x )
{
int i;
if ( !ok ) return;
if ( x >= n )
{
count++;
if ( count >= k )
{
afis();
ok=0;
return;
}
}
for (i=1; i<=n; i++)
if ( !uz[i] && !a[i][sol[x-1]] )
{
uz[i] = 1; sol[x] = i;
bkt( x+1 );
uz[i] = 0;
}
}
void citire()
{
int i, x, y;
FILE *f = fopen( "dusman.in", "rt" );
fscanf( f, "%d %d %d", &n, &k, &m );
for (i=0; i<m; i++)
{
fscanf( f, "%d %d", &x, &y );
a[x][y] = a[y][x] = 1;
}
}