Professional Documents
Culture Documents
Combinatorica
Combinatorica
Aranjamente
#include <iostream>
char a[30][15];
int v[100],n;
void afisare(int k)
int i;
for(i=1;i<=k;i++)
cout<<a[v[i]];
cout<<endl;
int continuare(int k)
int i;
for(i=1;i<=k-1;i++)
if(v[i]==v[k])
return 0;
return 1;
void bk(int k)
int i;
for(i=1;i<=n;i++)
v[k]=i;
if(continuare(k))
if(k==n)
afisare(k);
else
bk(k+1);
int main()
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
bk(1);
return 0;
Combinari
#include <iostream>
char a[30][15];
int v[100],n,m;
void afisare(int k)
int i;
for(i=1;i<=k;i++)
cout<<a[v[i]];
cout<<endl;
int continuare(int k)
{
int i;
for(i=1;i<=k-1;i++)
if(v[i]>=v[k])
return 0;
return 1;
void bk(int k)
int i;
for(i=1;i<=n;i++)
v[k]=i;
if(continuare(k))
if(k==m)
afisare(k);
else
bk(k+1);
int main()
cin>>n>>m;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
bk(1);
return 0;
Permutari
#include <iostream>
using namespace std;
int v[100],n;
void afisare(int k)
int i;
for(i=1;i<=k;i++)
cout<<v[i];
cout<<endl;
int continuare(int k)
int i;
for(i=1;i<=k-1;i++)
if(v[i]==v[k])
return 0;
return 1;
void bk(int k)
int i;
for(i=1;i<=n;i++)
v[k]=i;
if(continuare(k))
if(k==n)
afisare(k);
else
bk(k+1);
int main()
{
cin>>n;
bk(1);
return 0;
Submultimi
#include <iostream>
char a[30][15];
int v[100],n,m;
void afisare(int k)
int i;
for(i=1;i<=k;i++)
cout<<a[v[i]];
cout<<endl;
int continuare(int k)
int i;
for(i=1;i<=k-1;i++)
if(v[i]>=v[k])
return 0;
return 1;
void bk(int k)
int i;
for(i=1;i<=n;i++)
v[k]=i;
if(continuare(k))
if(k==m)
afisare(k);
else
bk(k+1);
int main()
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
for(int i=1;i<=n;i++)
cout<<a[i]<<" ";
for(int m=1;m<=n;m++)
bk(1);
return 0;