Cod sursa(job #170557)

Utilizator raresjuniorSfirlogea Rares raresjunior Data 2 aprilie 2008 21:45:10
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.1 kb
#include<stdio.h>
FILE *f=fopen("dusman.in","r"),*g=fopen("dusman.out","w");
int n,k,vec,v[1001],nrsol,stiv[1001];
char a[1001][1001];

void back(int cur)
{
for(int i=1;i<=n;i++)
    {
        if(cur==1)
            {
            v[i]=1;
            stiv[cur]=i;
            back(cur+1);
            v[i]=0;
            }
            else
            {
            if(!v[i]&&!a[stiv[cur-1]][i])
                {
                if(cur==n)
                    {
                        nrsol++;
                        if(nrsol==k)
                            {
                            stiv[n]=i;
                            for(int j=1;j<=n;fprintf(g,"%d ",stiv[j]),j++);
                            }
                    }
                    else
                    {
                    v[i]=1;
                    stiv[cur]=i;
                    back(cur+1);
                    v[i]=0;
                    }
                }
            }
    }

}


int main()
{
fscanf(f,"%d %d %d",&n,&k,&vec);
int x,y;
for(int i=1;i<=vec;fscanf(f,"%d %d",&x,&y),a[x][y]=a[y][x]=1,i++);
back(1);
fclose(f);
fclose(g);
return 0;
}