Pagini recente » Cod sursa (job #471998) | Cod sursa (job #2933722) | Cod sursa (job #5401) | Cod sursa (job #390151) | Cod sursa (job #219559)
Cod sursa(job #219559)
#include<iostream.h>
#include<math.h>
int st[100],k,i,n,as,ev,x[100];
void init(int k,int st[100])
{
st[k]=0;
}
void succesor(int k,int st[100],int &as)
{
as=0;
if (st[k]<n)
{
st[k]++;
as=1;
}
}
void valid(int k,int st[100],int &ev)
{ int i;
ev=1;
for(i=1;i<k;i++)
if(st[k]==st[i])ev=0;
}
int solutie(int k)
{
if(k==n) return 1;
else return 0;
}
void tipar()
{
int i;
for(i=1;i<=n;i++)
cout<<x[st[i]]
<<" ";
cout<<endl;
}
void main()
{
cout<<"n=";cin>>n;
for(i=1;i<=n;i++)
cin>>x[i];
k=1;
init(k,st);
while(k>0)
{
do{
succesor(k,st,as);
if(as) valid(k,st,ev);
}while((!as||!ev)&&as);
if(as)
if(solutie(k))
tipar();
else{ k++;
init(k,st);
}
else k--;
}
}