問題一覧 > 通常問題

No.1421 国勢調査 (Hard)

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / スペシャルジャッジ問題 (複数の解が存在する可能性があります)
タグ : / 解いたユーザー数 52
作問者 : 57tggx / テスター : logx
0 ProblemId : 5848 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2022-02-22 23:26:40

問題文

ある王国には N 個の町があり,それぞれには 1 から N までの番号が付いている.番号 ii=1,2,,N )の町には Xi 軒の家が建っていて,今 0Xi<230 であることだけがわかっている. この国の王は,どの町に家が何軒あるのか知りたいと思っている.

あるとき M 人の旅人がこの国を訪れた. jj=1,2,,M )番目の旅人は,王国内の町のうち Aj 個を回り,その番号は Bj1,Bj2,,BjAj であった.各旅人 j は,王国を去るとき王に次の 2 つを報告した.

  • 自分の回った町の数 Aj と,その番号 Bj1,Bj2,,BjAj
  • 自分の回った Aj 個の町について,家の軒数の総 XOR をとった値 Yj .すなわちYj=XBj1XBj2XBjAj

王は, M 人の旅人の報告をもとに各町の家の軒数 X1,X2,,XN を割り出すことにした.

しかし,旅人の中には虚偽の報告をした者がいる可能性もある.

M 人の旅人の報告全てと合致するような X1,X2,,XN の値の組が存在するならば,そのうちの一つを出力せよ.そうでないとき(旅人の報告に矛盾があるとき), 1 を出力せよ.

入力

N M
A1
B11 B12  B1A1
Y1
A2
B21 B22  B2A2
Y2

AM
BM1 BM2  BMAM
YM

制約:

  • 入力は全て整数である.
  • 1N50
  • 1M104
  • j=1,2,,M について:
    • 1AjN
    • 1Bj1<Bj2<<BjAjN
    • 0Yi<230

出力

矛盾がなければ,改行区切りで

X1
X2

XN
を出力せよ.ただし,全ての i=1,2,,N について 0Xi<230 が成り立っていなければならない.また,複数ある場合はどれを出力してもよい.

矛盾があれば,

-1
と出力せよ.

サンプル

サンプル1
入力
3 3
2
1 2
3
2
2 3
5
1
3
4
出力
2
1
4

123 にはそれぞれ家が 214 軒建っている.

旅人 1 は町 12 を訪れ,総 XOR は 3 だった.

旅人 2 は町 23 を訪れ,総 XOR は 5 だった.

旅人 3 は町 3 を訪れ,総 XOR は 4 だった.

サンプル2
入力
2 3
1
1
5
1
2
5
2
1 2
5
出力
-1

旅人 12 の情報に基づくと町 12 にある家はともに 5 軒となるが,これは旅人 3 の情報と矛盾する.

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