ペアの全探索 // ペアの全探索です。 // d[NH],dd[N]は0でクリアしてください。 #define N 20 #define NH (N/2) void fp(int d[NH], int dd[N], int index = 0){ if(index==N){ for(int i = 0; i < N; i++){ cout << dd[i]; if(i!=N-1)cout << " "; } cout << endl; return; } for(int i = 0; i < NH; i++){ if(d[i]==0){ d[i]=1; dd[index]=i; fp(d,dd,index+1); d[i]=0; break; } } for(int i = 0; i < NH; i++){ if(d[i]==1){ d[i]=2; dd[index]=i; fp(d,dd,index+1); d[i]=1; } } }