Pagini recente » Cod sursa (job #1982488) | Cod sursa (job #3155750) | Cod sursa (job #703605) | Cod sursa (job #827571) | Cod sursa (job #1333906)
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream fin("combinari.in");
ofstream fout("combinari.out");
char a[28500][18];
int va, vb;
int M=10;
void ord(int b[19][28500],int n)
{
int aux,i,j,k=1;
while(k)
{ k=0;
for(i=1;i<n;i++)
{
for(j=1;j<=n;j++)
if(a[i][j]>a[i+1][j])
{
k=1;
}
else if(a[i][j]<a[i+1][j]) break;
if(k=1)
{
for(j=1;j<=n;j++)
{
aux=a[i][j];
a[i][j]=a[i+1][j];
a[i+1][j]=aux;
}
}
}
}
}
int comp(const void *a, const void *b) {
char *aa = (char *)a;
char *bb = (char *)b;
int i;
for (i = 1; aa[i] == bb[i] && i <= M; i++);
if (i <= M) {
return aa[i] - bb[i];
}
return 0;
}
int main()
{ int n,i, gata=0,k,p, S[20],l,c,j;
l=1;c=0;
fin>>n>>k;
M = k;
for(i=0;i<=n;i++) S[i]=0;
while(!gata)
{
p=0;
for(i=1;i<=n;i++) if (S[i]) p++;
if(p==k)
{
c = 1;
for(i=1;i<=n;i++)
{
if(S[i]) {
a[l][c]=i;
c++;
}
}
l++;
}
for(i=1; i<=n && S[i];i++) S[i]=0;
if(i==n+1)gata=1;
else S[i]=1;
}
l--;
qsort(a+1, l, sizeof(a[0]), comp);
//ord(a,n);
for(i=1;i<=l;i++)
{
for(j=1;j<=n;j++)
if(a[i][j]) fout<< (int)a[i][j]<<' ';
fout<<'\n';
}
return 0;
}