Cod sursa(job #236691)

Utilizator DraStiKDragos Oprica DraStiK Data 28 decembrie 2008 11:24:18
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
int a[1005][1005],uz[1005],sol[1005];
int n,k,m;
void print ()
{
    int i;
    for (i=1; i<=n; ++i)
        printf ("%d ",sol[i]);
    exit (0);
}
void back (int val)
{
    int i;
    if (val==n+1)
    {
        --k;
        if (k==0)
            print ();
    }
    else
        for (i=1; i<=n; ++i)
			if (!uz[i] && !a[sol[val-1]][i])
            {
                sol[val]=i;
                uz[i]=1;
                back (val+1);
                uz[i]=0;
            }
}
int main ()
{
    freopen ("dusman.in","r",stdin);
    freopen ("dusman.out","w",stdout);
    int i,x,y;
    scanf ("%d%d%d",&n,&k,&m);
    for (i=1; i<=m; ++i)
    {
        scanf ("%d%d",&x,&y);
        a[x][y]=1;
        a[y][x]=1;
    }
    back (1);
    return 0;
}