ホームに戻る
ペアの全探索

// ペアの全探索です。
// 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;
    }
  }
}

inserted by FC2 system