提交时间:2026-06-13 06:36:11

运行 ID: 91487

#include <bits/stdc++.h> using namespace std ; int n , k ; int plan[11] ; int cnt = 0 ; void DFS(int step , int remain ) { if(step > 10) { if(remain == 0) cnt++ ; return ; } for(int i = 1 ; i <= 3 ; i++ ) { plan[step] = i ; DFS(step + 1 , remain - i ) ; } } void dfs(int step , int remain ) { if(step > 10) { if(remain == 0) { for(int i = 1 ; i <= 10 ; i++ ) cout << plan[i] << ' ' ; cout << endl ; } return ; } for(int i = 1 ; i <= 3 ; i++ ) { plan[step] = i ; dfs(step + 1 , remain - i ) ; } } int main() { cin >> n ; DFS(1 , n ) ; cout << cnt << endl ; dfs(1 , n ) ; return 0 ; }