問題一覧 > 通常問題

No.2929 Miracle Branch

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 91
作問者 : hirayuu_yc / テスター : mymelochan 👑 loop0919 kusirakusira nouka28 Nyaa Uruzu tnodino
3 ProblemId : 11037 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2024-10-12 08:51:18

問題文

頂点数が 2×1052\times 10^5 以下の木であって、各頂点が茶色または緑色であり、以下の条件をすべて満たすようなものをよい枝と呼ぶことにします。

  • 茶色の頂点が存在する。
  • 緑色の頂点が存在する。
  • 茶色の頂点に隣接する茶色の頂点の数は高々 22 つ。
  • 茶色の頂点どうしを結ぶパスに緑色の頂点は存在しない。

また、よい枝の美しさを以下のように求めます。

  • 茶色の頂点全てに対して、隣接する緑色の頂点の数を求める。
  • その総積を美しさとする。

美しさがちょうど XX になるようなよい枝のうち、頂点数が最小のものを出力してください。そのようなものが複数ある場合は、どれを出力しても構いません。

ただし、よい枝であって条件を満たすものが存在しない場合、代わりにそのことを報告してください。特に、頂点数が 2×105\mathbf{2\times 10^5} より大きい木はよい枝の条件を満たさないことに注意してください。

制約

  • 1X10181\leq X\leq 10^{18}
  • XX は整数

入力

入力は以下の形式で標準入力から与えられる。

XX

出力

よい枝であって条件を満たすものが存在しない場合、-1とだけ出力してください。

そうでない場合、すなわち答えが存在する場合は以下のように出力してください。

nn
u1 v1u_1\ v_1
u2 v2u_2\ v_2
\vdots
un1 vn1u_{n-1}\ v_{n-1}
c1 c2cnc_1\ c_2\dots c_n

ただし、nn は頂点数です。あなたは頂点に 1,2,,n1,2,\dots,n と番号のついた木を出力することになります。

ui viu_i\ v_i は頂点 uiu_i と頂点 viv_i を結ぶ辺、cic_i は頂点 ii の色を指します。ここで、cic_ibg である必要があり、ci=c_i= b であれば頂点 ii茶色であることを、ci=c_i= g であれば頂点 ii緑色であることを表します。

出力がこのフォーマットに従わなかった場合、判定結果は不定です。特に、余計な改行や空白が存在したり、必要な改行や空白が存在しない場合、WA と判定される可能性があります。

サンプル

サンプル1
入力
1
出力
2
1 2
b g

この出力は以下のような木です。ただし、頂点 11茶色に、頂点 22緑色に塗られています。

この木はよい枝の条件をすべて満たしていることが確認できます。頂点 11 に隣接する緑色の頂点は 11 つなので、美しさは 11 です。頂点数が 11 以下の木で条件を満たすものは存在しないので、これは正しい解です。

たとえば以下のような出力は、美しさは 11 ですが頂点数が最小でないので不正解と判定されます。

3
1 2
2 3
b g g
サンプル2
入力
10
出力
9
1 2
2 3
4 2
5 4
7 4
4 6
9 4
4 8
g b g b g g g g g

この出力は以下のような木です。ただし、頂点 2,42,4茶色に、それ以外が緑色に塗られています。

この木はよい枝の条件をすべて満たしていることが確認できます。頂点 22 に隣接する緑色の頂点は 22 つ、頂点 44 に隣接する緑色の頂点は 55 つなので、美しさは 1010 です。頂点数が 88 以下の木で条件を満たすものは存在しないので、これは正しい解です。

サンプル3
入力
998244353
出力
-1

2×1052\times 10^5 頂点以下の木に条件を満たすものはありません。

提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。