Cod sursa(job #116765)

Utilizator DastasIonescu Vlad Dastas Data 19 decembrie 2007 14:43:53
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <cstdio>

const int maxn = 1001;

FILE *in = fopen("dusman.in","r"), *out = fopen("dusman.out","w");

int n, k, m;
int st[maxn];
int viz[maxn];

int a[maxn][maxn];

void read()
{
    fscanf(in, "%d %d %d", &n, &k, &m);

    int x, y;
    for ( int i = 1; i <= m; ++i )
        fscanf(in, "%d %d", &x, &y), a[x][y] = a[y][x] = 1;
}

void go(int i)
{
    if ( k < 0 )
        return;

    if ( i > n )
    {
        --k;
        if ( k == 0 )
            for ( int j = 1; j <= n; ++j )
                fprintf(out, "%d ", st[j]);

        return;
    }

    for ( int j = 1;  j <= n; ++j )
        if ( !viz[j] && !a[ st[i-1] ][ j ] )
        {
            viz[j] = 1;
            st[i] = j;
            go(i+1);
            viz[j] = 0;
        }
}

int main()
{
    read();

    go(1);


	return 0;
}