#include<bits/stdc++.h>
using namespace std;
int n,cnt,ans[60005][15];
int main(){
cin>>n;
for(int i1=1;i1<=3;i1++){
for(int i2=1;i2<=3;i2++){
for(int i3=1;i3<=3;i3++){
for(int i4=1;i4<=3;i4++){
for(int i5=1;i5<=3;i5++){
for(int i6=1;i6<=3;i6++){
for(int i7=1;i7<=3;i7++){
for(int i8=1;i8<=3;i8++){
for(int i9=1;i9<=3;i9++){
for(int i10=1;i10<=3;i10++){
if(i1+i2+i3+i4+i5+i6+i7+i8+i9+i10==n){
cnt++;
ans[cnt][1]=i1;
ans[cnt][2]=i2;
ans[cnt][3]=i3;
ans[cnt][4]=i4;
ans[cnt][5]=i5;
ans[cnt][6]=i6;
ans[cnt][7]=i7;
ans[cnt][8]=i8;
ans[cnt][9]=i9;
ans[cnt][10]=i10;
}
}
}
}
}
}
}
}
}
}
}
cout<<cnt<<"\n";
for(int i=1;i<=cnt;i++){
for(int j=1;j<=10;j++)
cout<<ans[i][j]<<" ";
cout<<"\n";
}
}
十层暴力枚举循环也能过?
后来我一算,十层循环,每层循环 3 次,需要循环 310 次,才 59049,所以肯定能过。
最后,我要引用一句名言:
暴力出奇迹。