Cod sursa(job #624996)

Utilizator metalkittenGeorgiana Arhip metalkitten Data 23 octombrie 2011 15:09:30
Problema Generare de permutari Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<cstdio>

using namespace std;

FILE * f;
FILE * g;

f=fopen("permutari.in","r");
g=fopen("permutari.out","w");

int st[100],n,k;

int valid()
{for (int i=1;i<k;i++)
	if(st[i]==st[k]) return 0;
 return 1;
}
void back()
{int as;
 k=1;st[1]=0;
 while(k>0) 
  { do
     {if(st[k]<n)
	    {as=1;st[k]++;}
      else as=0;
	 }while(as && ! valid()); 
    if(as)
		if(k==n) 
			{for(int i=1;i<=n;i++)
				fprintf(g,"%d ",st[i];);
			 fprintf(g,"\n");
			}
		else{k++; st[k]=0;} 
	else
		k--; 
  }
}
int main()
{
 fscanf(f,"%d",&n);
 back();
 fclose(f);
 fclose(g);
}