rt,代码如下:
#include<iostream>
using namespace std;
int n;
int a[11];
int ans[100010][11],cnt=0;
void dfs(int x,int px){
if(px==11&&x==n){
cnt++;
for(int i=1;i<=10;i++){
ans[cnt][i]=a[i];
}
return ;
}
if(x>n)return ;
a[px]=1;
dfs(x+1,px+1);
a[px]=2;
dfs(x+2,px+1);
a[px]=3;
dfs(x+3,px+1);
a[px]=0;
return;
}
int main(){
cin>>n;
if(n>30){
cout<<0;return 0;
}
dfs(0,1);
cout<<cnt<<endl;
for(int i=1;i<=cnt;i++){
for(int j=1;j<=10;j++){
cout<<ans[i][j]<<" ";
}
cout<<endl;
}
return 0;
}