書式#include <iostreamの> 使用して 名前空間はstdを、 const int型 N = 1010 ; INT Y [N] [N]。 int型のn; int型[N]と、 ブール値ST [N]。 int型の合計。 ブールフラグ。 ボイドプリント(){ 用(INT iは= 1 ; I <= N; I ++ ) COUT << [I] << " " 。 } ボイド DFS(INTステップ、INT ANS){ 場合(ANS>和||フラグ)のリターン; 場合(ステップ== N + 1 && ANS == 合計){ プリント()。 フラグ = 1 。 リターン; } ため(INT iは= 1 ; I <= N; I ++ ){ 場合(!ST [I]){ ST [I] = 1 。 [ステップ] = I。 DFS(ステップ + 1、ANS + I * Y [n]は[ステップ])。 ST [I] = 0 ; } } } int型のmain(){ CIN>> N >> 合計。 Y [ 1 ] [ 1 ] = 1 。 以下のために(INT iが= 2 ; I <= N; I ++)// 杨辉三角 ため(INT J = 1 ; J <= I; J ++ ) Y [I] [J] = Y [I- 1 ] [J- 1 ] + Y [I- 1 ] [J]。 DFS(1、0 ); リターン 0 ; }