You are on page 1of 4

1.

#include <iostream>
using namespace std;

int n, x[100], v[100];


void citire(){
cout<<"n="; cin>>n;
for(int i=1;i<=n;i++)

{
cout<<"v["<<i<<"]=";
cin>>v[i];
}

}
int valid(int k){
if(k==1) return 1;
if(x[k]%2 == 0)
if(x[k-1]%2 == 0) return 0;

if(x[k]%2 != 0)
if(x[k-1]%2 != 0) return 0;
return 0;
return 1;

}
void tipareste(int k){
for(int i=1;i<=k;i++)
cout<<x[i]<<" ";

cout<<endl;
}
void backtr(int k){
for(int i=1;i<=n;i++)

{
x[k]=v[i];
if(valid(k))
{

if(k==n) tipareste(k);
else backtr(k+1);
}
}

}
int main(){
citire();
backtr(1);

return 0;
}
2.
#include <iostream>
using namespace std;

int n, x[100], v[100];


void init(int k)
{
x[k]=0;

}
void citire(){
cout<<"n="; cin>>n;
for(int i=1;i<=n;i++)

{
cout<<"v["<<i<<"]=";
cin>>v[i];
}

}
int valid(int k){
if(k==1) return 1;
if(x[k]%2 == 0)

if(x[k-1]%2 == 0) return 0;
return 0;
return 1;
}

void tipareste(int k){


for(int i=1;i<=k;i++)
cout<<x[i]<<" ";
cout<<endl

}
void backtr ( int k)
{
int as;
int (k);

while (k>0)
{
do
{

}
while ((as==succesor(k))&&(!valid(k)))
if (as==1)

{
if (k==n);
tipareste (n);
else

{
k++;
init (k);
}

}
else
k--;
}

}
int main(){
citire();

backtr(1);
return 0;
}

You might also like