Code: Select all
#include<stdio.h>
#define N 20
int n,d,time,a[N][N],b[N],path;
char color[N];
void dfs(int s)
{
int i;
if(time==(d+1))
{
path++;
printf("{");
for(i=0;i<=d;i++)
{
if(i) printf(",");
printf("%d",b[i]+1);
}
printf("}\n");
return ;
}
for(i=0;i<n;i++)
if(color[i]=='w' && a[s][i])
{
color[i]='g';
b[time++]=i;
dfs(i);
b[--time]=0;
color[i]='w';
}
}
main()
{
freopen("c:\\in.txt","r",stdin);
int cases=0,i,j;
while(1)
{
if(cases) scanf("%d",&d);
if(scanf("%d%d",&n,&d)==EOF) break;
if(cases) printf("\n");
cases++;
for(i=0;i<n;i++) for(j=0;j<n;j++) scanf("%d",&a[i][j]);
for(i=0;i<n;i++) color[i]='w'; time=path=0;
time=1;
color[0]='g';
dfs(0);
if(path==0) printf("no walk of length %d\n",d);
}
return 0;
}
i think it's not hard to read and realize..
but why wa for just a simple problem..
dominik, tomal bhai .. and to all please help..
i am very crazy to solve it.. by just dfs..
please helpp......
drowning anupam....
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)
![:oops:](./images/smilies/icon_redface.gif)