整数 \(M\) に対し,頂点 \(0,1,\ldots,M-1\) からなる木 \(T\) の \(i\) 番目の辺を \(e_i(T)=(u_i(T),v_i(T)) \ (1\le i\le M-1)\) と表します.
また,2つの \(M\) 頂点の木 \(S,T\) と二項演算 \(\circ\) に対し, グラフ \(S\circ T\) を以下のように定義します.
ただし,演算 \(\circ\) は頂点番号に対して行います.また,演算によって得られるすべての辺の端点が \(0\) 以上 \(M-1\) 以下である場合に限り,\(S\circ T\) が定義されるものとします.
整数 \(N\) が与えられます. 頂点 \(0,1,\ldots,N-1\) からなる \(N\) 頂点の木 \(T_1,T_2\) であって, \(T_1|T_2,\ T_1\&T_2,\ T_1\oplus T_2\) がすべて定義され,かつすべて木となるものが存在するか判定し, 存在するならばそのような木\(T_1,T_2\)を1組構築してください.
ここで,\(|,\&,\oplus\) はそれぞれ bitwise OR,bitwise AND,bitwise XOR を表します.
問題文の条件を満たす木 \(T_1,T_2\) が存在しないならば,No を出力してください.
存在するならば,\(1\) 行目には Yes を,\(2\) 行目から \(N\) 行目には木 \(T_1\) の辺 \(e_i(T_1)=(u_i(T_1),v_i(T_1))\) を,\(i=1,\ldots,N-1\) の順に各行に \(1\) 本ずつ出力してください.
\(N+1\) 行目から \(2N-1\) 行目には,同様に木 \(T_2\) の辺 \(e_i(T_2)=(u_i(T_2),v_i(T_2))\) を,\(i=1,\ldots,N-1\) の順に各行に \(1\) 本ずつ出力してください.
すべての端点は \(0\) 以上 \(N-1\) 以下でなければなりません.また,演算時には \(T_1\) と \(T_2\) の同じ番号の辺が,出力された端点の順に対応します.
2
No
5
Yes 1 4 1 0 0 3 0 2 2 4 1 4 2 3 0 3
テストケース1:
条件を満たす木が存在しないことが示せます.
テストケース2:
出力例では,\(T_1,T_2\) の同じ番号の辺を対応させることで,各演算後の辺集合はそれぞれ以下のようになります.
\(T_1,T_2\) と演算後の3つのグラフはすべて木であるため,この出力は条件を満たします. 条件を満たす出力が複数存在する場合,そのうちどれを出力しても構いません.