Pagini recente » Cod sursa (job #2516252) | Cod sursa (job #2622920) | Cod sursa (job #450703) | Cod sursa (job #1026008) | Cod sursa (job #559652)
Cod sursa(job #559652)
#include<cstdio>
#include<cstring>
#include<algorithm>
int n,i,g,j;
char st[20];
char a[260][20];
int v[260];
void cpy(char a[20],char b[20]){
int i=1;
while(b[i]){
a[i]=b[i];
++i;
}
}
void copy(){
cpy(a[++g],st);
}
int valid(int k){
int i;
for(i=1;i<k;i++)
if(st[i]==st[k]) return 0;
return 1;
}
void back(int k,int q){
int i;
for(i=st[k-1]+1;i<=n;i++){
st[k]=i;
if(valid(k))
if(k==q)
copy();
else back(k+1,q);
}
}
bool f(int x,int y){
if(strcmp(a[x]+1,a[y]+1)>0) return 0;
return 1;
}
int main(){
freopen("submultimi.in","r",stdin);
freopen("submultimi.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
back(1,i);
for(i=1;i<=g;i++)
v[i]=i;
std::sort(v+1,v+g+1,f);
for(i=1;i<=g;i++){
for(j=1;a[v[i]][j];j++)
printf("%d ",a[v[i]][j]);
printf("\n");
}
return 0;
}