タイトル説明
テーブル上のコインの行は、合計N個の片は、各コインは右サイドアップです。今フリップ尾に入れ、すべての硬貨は、各ルールは、任意の可逆であるN-1 コイン(フェイスアップが反対方向、またはその逆に反転されます)。操作の最短配列(コイン投げN-1となるたびに単一の操作)を探しています。
入力形式
自然数N (Nは、以下である100 偶数)。
出力フォーマット
最初の行は、整数含まSを、必要な動作の最小数を表します。次のS ラインそれぞれが含む行(各操作の後にデスクコインの状態を表すN個の整数(0 または1 :)、各硬貨の状態を示す0 上方陽性、および- 1 、バックアップ-余分なスペース)が許可されていません。
動作プログラムの様々なために、辞書順最小の出力は、一種類のみです。
サンプル入力と出力
入力#1
4
出力#1
4 0111 1100 0001 1111
1つの#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 CONST INT MAXN = 101 。 4 BOOL [MAXN]。 5 INT N。 6 INT メイン() 7 { 8 CIN >> N。 9 COUT << N << ENDL。 10 のためには、(int型 i = 1 ; iがn = <; iは++ ){ 11 のための(int型 J = 1 ; J <= nであり、j ++ ){ 12 であれば(!J = I){ 13 場合([J])[j]が= 0 ; 14 他 [J] = 1 。 15 } 16 COUT << [J]。 17 } 18 COUT << ENDL。 19 } 20 リターン 0 。 21 }