You are on page 1of 1

//anagrame backtracking

#include<stdio.h>
#include<string.h>
int st[100],n;
char cuv[100];
FILE*f=fopen("date.in","r");
FILE*g=fopen("date.out","w");
int valid(int k)
{ for(int i=1;i<k;i++)
if(st[k]==st[i])
return 0;
return 1;
}
void back(int k)
{if(k==n+1)
{for(int i=1;i<=n;i++)
fprintf(g,"%c",cuv[st[i]]);
fprintf(g,"\n");}
else for(int i=0;i<n;i++)
{st[k]=i;
if(valid(k))
back(k+1);}}
int main()
{fscanf(f,"%s",&cuv);
n=strlen(cuv);
back(1);
return(0);
}

You might also like