Files
OI-source/1.1219.cpp
2023-08-03 09:22:52 +08:00

32 lines
455 B
C++

#include<cstdio>
#include<cstring>
int n,cnt;
int res[20];
void dfs(int step,int a,int b,int c)
{
if(step>=n)
{
if(cnt++<3)
{
printf("%d",res[0]);
for(int i=1;i<n;i++) printf(" %d",res[i]);
printf("\n");
}
return;
}
int cant=a|b|c;
for(int i=1;i<=n;i++)
if(!(cant&(1<<i)))
{
res[step]=i;
dfs(step+1,a|(1<<i),(b|(1<<i))<<1,(c|(1<<i))>>1);
}
}
int main()
{
scanf("%d",&n);
dfs(0,0,0,0);
printf("%d\n",cnt);
return 0;
}