Pagini recente » Borderou de evaluare (job #110552) | Borderou de evaluare (job #2017725) | Borderou de evaluare (job #1373303) | Cod sursa (job #1403203) | Cod sursa (job #120323)
Cod sursa(job #120323)
#include <cstdio>
#define INF "dusman.in"
#define OUF "dusman.out"
#define NMAX 1024
using namespace std;
char a[NMAX][NMAX],v[NMAX]={0};
short n,m,pk,k,nf=1,sol[NMAX];
void dfs(short h)
{
if(nf)
{
short i;
for(i=1;i<=n&&nf;++i)
if(!v[i]&&a[sol[h-1]][i])
{
v[i]=1;sol[h]=i;
if(h==n)
{
++pk;
if(pk==k) nf=0;
}
else dfs(h+1);
v[i]=0;
}
}
}
int main()
{
short i,j,x,y;
FILE *in,*out;
in=fopen(INF,"r");
out=fopen(OUF,"w");
fscanf(in,"%hd%hd%hd",&n,&k,&m);
for(i=0;i<=n;++i)
for(j=0;j<=n;++j) a[i][j]=1;
for(i=1;i<=m;++i)
{
fscanf(in,"%hd%hd",&x,&y);
a[x][y]=a[y][x]=0;
}
sol[0]=0;pk=0;
dfs(1);
for(i=1;i<=n;++i) fprintf(out,"%hd ",sol[i]);
fclose(in);fclose(out);
return 0;
}