Sunteți pe pagina 1din 1

//1.

generati toate permutarile unei multimi in care 2 nr vecine nu trebuie sa fi


e ambele pare sau impare
//2.se citesc n cifre distincte .sa se genereze toate nr de m cifre m<=n si care
contin toate cele n
//cifre ca
//3.se se genereze toate submultimile de p elem dintr-o multime cu n elem cu pro
p ca elem submult
//generate sunt nr pare
#include <iostream>
using namespace std;
int a[100];
void scrie(int x[],int n,int a[])
{
int i;
for(i=1;i<=n;i++)
cout<<a[x[i]]<<" ";
cout<<endl;
}
int posibilBUN(int x[],int k,int a[])
{
int i;
if(k>1 && a[x[k-1]]%2==a[x[k]]%2)
return 0;
for(i=1;i<k;i++)
if(a[x[k]]==a[x[i]])
return 0;
return 1;
}
int main()
{
int n,x[100],k,gasit,i;
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
k=1;
x[k]=0;
while(k>0)
{
gasit=0;
while(x[k]<n && gasit==0)
{
x[k]++;
gasit=posibilBUN(x,k,a);
}
if(gasit==1)
if(k==n)
scrie(x,n,a);
else
{
k++;
x[k]=0;
}
else
k--;
}
}

S-ar putea să vă placă și