提交时间:2023-10-28 09:51:53

运行 ID: 107779

# include <iostream> using namespace std ; int cnt = 0 , num ; bool isc [15] = { true , true , true , true , true , true , true , true , true , true , true , true , true , true , true } ; bool b [114] , c [114] , d [114] ; int pl [10] ; void dfs ( int k ) { if ( k > num ) { if ( cnt < 3 ) { for ( int i = 1 ; i <= num ; i ++ ) { cout << pl [i] ; if ( i < num ) { cout << ' ' ; } } cout << endl ; } cnt ++ ; } for ( int i = 1 ; i <= num ; i ++ ) { if ( b [i] == 0 && c [i + k] == 0 && d [k - i + 1] == 0 ) { b [i] = 1 ; c [i + k] = 1 ; d [k - i + 1] = 1 ; pl [k] = i ; dfs ( k + 1 ) ; b [i] = 0 ; c [i + k] = 0 ; d [k - i + 1] = 0 ; } } return ; } int main ( ) { cin >> num ; dfs ( 1 ) ; cout << cnt << endl ; return 0 ; }