#include <cstdio> #define WRITE( x ) x char used[ 6 ][ 6 ] = { { 0 } } ; WRITE( char path[ 64 ] ) ; int n_path ; void gen( int node , int level ) { if( 2 == node ) { ++n_path ; WRITE( path[ level ] = 0 ; printf( "%s\n" , path ) ) ; } for( int i( 1 ) ; i <= 5 ; ++i ) { if( node == i || used[ node ][ i ] ) continue ; used[ node ][ i ] = used[ i ][ node ] = 1 ; WRITE( path[ level ] = i + '0' ) ; gen( i , level + 1 ) ; used[ node ][ i ] = used[ i ][ node ] = 0 ; } } int main() { n_path = 0 ; WRITE( path[ 0 ] = '1' ) ; gen( 1 , 1 ) ; printf( "%d\n" , n_path ) ; return 0 ; }
Standard input is empty
12 123142 12314352 123143542 1231452 123145342 123152 12315342 123153452 1231542 123154352 12341352 123413542 1234152 12341542 12342 123451352 12345142 123452 123453142 123453152 12351342 123513452 1235142 12351452 12352 123541342 12354152 123542 123543142 123543152 124132 12413452 124134532 1241352 124135432 124152 1241532 124153452 12415432 124154352 12431452 124314532 1243152 12431532 12432 12435132 124351452 124352 124354132 124354152 1245132 12451352 12451432 124514352 12452 124531432 12453152 124532 124534132 124534152 125132 1251342 125134532 12513542 125135432 125142 1251432 125143542 12514532 125145342 1253142 12531432 12531542 125315432 12532 12534132 125341542 125342 125345132 125345142 1254132 12541342 12541532 125415342 12542 12543142 125431532 125432 125435132 125435142 132 132142 13214352 132143542 1321452 132145342 132152 13215342 132153452 1321542 132154352 132412 1324152 1324153452 1324154352 13243512 1324351452 1324352 132435412 1324354152 1324512 1324514352 132452 132453412 1324534152 132512 1325142 1325143542 1325145342 13253412 1325341542 1325342 132534512 1325345142 1325412 1325415342 132542 132543512 1325435142 13412 13412352 134123542 13412452 134124532 13412532 13412542 134152 1341523542 1341524532 1341532 1341532452 1341532542 1341542 1341542352 1341542532 1342 13421452 134214532 1342152 13421532 13423512 1342351452 1342352 134235412 1342354152 1342512 1342514532 1342532 13425412 1342541532 134512 134512352 134512532 1345142 1345142352 1345142532 13452 13452142 134521532 134523512 1345235142 13452412 1345241532 134532 134532142 134532152 134532412 1345324152 134532512 1345325142 13512 13512342 135123452 13512432 13512452 13512542 135125432 135142 1351423452 1351425432 1351432 1351432452 1351432542 1351452 1351452342 1351452432 1352 1352142 13521432 13521542 135215432 13523412 1352341542 1352342 135234512 1352345142 1352412 1352415432 1352432 13524512 1352451432 135412 135412342 135412432 1354152 1354152342 1354152432 13542 135421432 13542152 135423412 1354234152 13542512 1354251432 135432 135432142 135432152 135432412 1354324152 135432512 1354325142 142 142132 14213452 142134532 1421352 142135432 142152 1421532 142153452 14215432 142154352 142312 1423152 1423153452 1423154352 14234512 1423451352 1423452 142345312 1423453152 1423512 1423513452 142352 142354312 1423543152 142512 1425132 1425134532 1425135432 1425312 1425315432 142532 142534512 1425345132 14254312 1425431532 1425432 142543512 1425435132 14312 14312352 143123542 14312452 143124532 14312532 14312542 143152 1431523542 1431524532 1431532 1431532452 1431532542 1431542 1431542352 1431542532 1432 14321352 143213542 1432152 14321542 14324512 1432451352 1432452 143245312 1432453152 1432512 1432513542 14325312 1432531542 1432542 143512 143512452 143512542 1435132 1435132452 1435132542 14352 14352132 143521542 14352312 1435231542 143524512 1435245132 143542 143542132 143542152 143542312 1435423152 143542512 1435425132 14512 14512342 14512352 14512432 145124352 14512532 145125342 145132 1451324352 1451325342 1451342 1451342352 1451342532 1451352 1451352342 1451352432 1452 1452132 14521342 14521532 145215342 1452312 1452315342 1452342 14523512 1452351342 14524312 1452431532 1452432 145243512 1452435132 145312 145312342 145312432 1453152 1453152342 1453152432 14532 145321342 14532152 145324312 1453243152 14532512 1453251342 145342 145342132 145342152 145342312 1453423152 145342512 1453425132 152 152132 1521342 152134532 15213542 152135432 152142 1521432 152143542 15214532 152145342 152312 1523142 1523143542 1523145342 1523412 1523413542 152342 152345312 1523453142 15235412 1523541342 1523542 152354312 1523543142 152412 1524132 1524134532 1524135432 1524312 1524314532 152432 152435412 1524354132 15245312 1524531432 1524532 152453412 1524534132 15312 15312342 153123452 15312432 15312452 15312542 153125432 153142 1531423452 1531425432 1531432 1531432452 1531432542 1531452 1531452342 1531452432 1532 15321342 153213452 1532142 15321452 1532412 1532413452 15324312 1532431452 1532452 15325412 1532541342 1532542 153254312 1532543142 153412 153412452 153412542 1534132 1534132452 1534132542 15342 15342132 153421452 15342312 1534231452 153425412 1534254132 153452 153452132 153452142 153452312 1534523142 153452412 1534524132 15412 15412342 15412352 15412432 154124352 15412532 154125342 154132 1541324352 1541325342 1541342 1541342352 1541342532 1541352 1541352342 1541352432 1542 1542132 15421352 15421432 154214352 1542312 1542314352 15423412 1542341352 1542352 15425312 1542531432 1542532 154253412 1542534132 154312 154312352 154312532 1543142 1543142352 1543142532 15432 154321352 15432142 15432412 1543241352 154325312 1543253142 154352 154352132 154352142 154352312 1543523142 154352412 1543524132 514