P2089烤鸡
30分求教
#1,#3,#5过了
#include<bits/stdc++.h>
using namespace std;
int n,a[1000],s,ans,s1[11][1000];
void dfs(int x,int b){
if(x>10){
if(b==n){
ans++;
for(int i=1;i<=10;i++)
s1[ans][i]=a[i];
}
return;
}
for(int i=1;i<=3;i++){
if(b+i>n){
continue;
}
a[x]=i;
dfs(x+1,b+i);
}
}
int main(){
cin>>n;
dfs(1);
cout<<ans<<endl;
if(ans!=0)
for(int i=1;i<=ans;i++){
for(int j=1;j<=10;j++){
cout<<s1[i][j]<<" ";
}
cout<<endl;
}
}