Cod sursa(job #219559)

Utilizator laurpoppopescu laurentiu laurpop Data 7 noiembrie 2008 13:25:49
Problema Multimi2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#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--;
   }
}