烦请各位大佬看看哪里有问题,鼠鼠自己跑的时候输入17,输出4740种的,还有下面的组合都是对的,但是第二个样例还是不过?
#include <bits/stdc++.h>
using namespace std;
int n;
int ans=0;
int arr[10]={0};
vector<string> s;
void dfs(int n,int st){
if(n==0&&st==11){
ans++;
string k=to_string(arr[0])+' ';
for(int i=1;i<9;i++){
string a=to_string(arr[i])+' ';
k=k+a;
}
k=k+to_string(arr[9]);
s.push_back(k);
return ;
}else if(n<0||st>11){
return ;
}
arr[st-1]=1;
dfs(n-1,st+1);
arr[st-1]=2;
dfs(n-2,st+1);
arr[st-1]=3;
dfs(n-3,st+1);
}
int main(){
cin>>n;
int i=1;
if(n>30||n<10){
cout<<0<<endl;
}else{
dfs(n,1);
cout<<ans<<endl;
for(int i=0;i<s.size();i++){
cout<<s[i]<<endl;
}
}
return 0;
}