Pagini recente » Cod sursa (job #949028) | Cod sursa (job #2226189) | Cod sursa (job #2398802) | Cod sursa (job #2548752) | Cod sursa (job #1990157)
#include <iostream>
#include <stdio.h>
using namespace std;
/// Sa se afiseze toate combinarile si aranjamentele pt multimea formata cu elementele de la 0 la n.
int a[100], n, b[100], ap[100], p;
void creare(int v[], int &n)
{
cin>>n;
for(int i=0; i<n; i++)
v[i]=i;
}
void afis(int v[], int l)
{
for(int i=0; i<l; i++)
cout<<v[i]+1<<" ";
cout<<endl;
}
/*void bta(int k)
{
if(k==p)
{
afis(b,p);
return;
}
else
{ for(int i=0; i<n; i++)
{
if(ap[i]==0)
{
b[k]=a[i];
ap[i]++;
bta(k+1);
b[k]=0;
ap[i]=0;
}
}
}
}
*/
void btc(int k)
{
if(k==p)
{
afis(b,p);
return;
}
else
{ for(int i=0; i<n; i++)
{ if(k==0)b[k-1]=-1;
if(b[k-1]<a[i])
{
b[k]=a[i];
btc(k+1);
b[k]=0;
}
}
}
}
int main()
{
freopen("combinari.in", "r", stdin);
freopen("combinari.out", "w", stdout);
creare(a,n);
cin>>p;
/*cout<<"A={0";
for(int i=1; i<n; i++)
cout<<", "<<i;
cout<<"}"<<endl;
cout<<"Aranjamentele de "<<n<<" luate cate "<<p<<" ale multimii A sunt:"<<endl;
bta(0);
cout<<"Combinarile de "<<n<<" luate cate "<<p<<" ale multimii A sunt:"<<endl;*/
btc(0);
return 0;
}