難易度評価

難易度を1〜10段階で評価できます。投票はあとから変更・取り消しできます。

難易度(投票) 未投票 (0票)

投票の分布

まだ投票はありません。

  1. Lv.10票
  2. Lv.20票
  3. Lv.30票
  4. Lv.40票
  5. Lv.50票
  6. Lv.60票
  7. Lv.70票
  8. Lv.80票
  9. Lv.90票
  10. Lv.100票

難易度の目安を見る ↗

ログインして難易度を投票

外部サイトへ移動します

リンク先の URL を確認してから開いてください。

別タブで開く

Circulating Stones

作成者 awsd_knsr

難易度(作成者設定) Lv.7

難易度(投票) 未投票 (0票)

実行時間制限
2 秒
メモリ制限
512 MiB

問題文

円周上に NN 個の箱が並んでおり、時計回りに 1,2,…,N1,2,\ldots,N の番号が付いています。箱 11 と箱 NN も隣り合っています。

はじめ、箱 ii には AiA_i 個の石が入っています。次の操作を好きな回数行うことができます。

  • 石が 2 個以上 入っている箱を 1 つ選び、その箱から石を 2 個取り出して、両隣の箱に 1 個ずつ入れる。

すべての箱 ii の石の個数を BiB_i 個にできるか判定してください。

できる場合は、以下で説明する形式で操作手順を 1 つ出力してください。

操作手順の表し方

操作手順は、いくつかの ブロック に分けて出力します。

1 つのブロックは、正整数 qq と、相異なる箱番号の列 (v1,v2,…,vm)(v_1,v_2,\ldots,v_m) で表します。このブロックは、箱 v1,v2,…,vmv_1,v_2,\ldots,v_m をこの順に 1 回ずつ操作することを、qq 回繰り返すことを意味します。

ブロックは出力された順に実行します。なお、どの操作でも、操作する直前にその箱に石が 2 個以上入っている必要があります。

出力する操作手順は、次の条件をすべて満たさなければなりません。

  • ブロック数 KK は 0≤K≤N−10\le K\le N-1 を満たす。
  • 各ブロックについて、1≤q≤10181\le q\le 10^{18}、1≤m≤N1\le m\le N を満たす。
  • 各ブロックの箱番号は 11 以上 NN 以下であり、同じブロック内に重複はない。
  • すべてのブロックにおける mm の総和は N(N−1)2\dfrac{N(N-1)}2 以下である。

目標の配置にできる場合、上記の条件を満たす操作手順が必ず存在することが保証されます。

制約

  • 3≤N≤20003\le N\le 2000
  • 0≤Ai,Bi≤1090\le A_i,B_i\le 10^9
  • 入力はすべて整数

入力

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

NN A1A2...ANA_1 A_2 ... A_N B1B2...BNB_1 B_2 ... B_N

出力

目標の配置にできない場合は、-1 を出力してください。

できる場合は、次の形式で出力してください。

KK q1m1v1,1⋯v1,m1q_1 \quad m_1 \quad v_{1,1} \quad \cdots \quad v_{1,m_1} q2m2v2,1⋯v2,m2q_2 \quad m_2 \quad v_{2,1} \quad \cdots \quad v_{2,m_2} ⋮\vdots qKmKvK,1⋯vK,mKq_K \quad m_K \quad v_{K,1} \quad \cdots \quad v_{K,m_K}

ここで、qjq_j は jj 番目のブロックの反復回数、mjm_j はそのブロックに含まれる箱の個数を表します。

条件を満たす出力が複数ある場合、どれを出力しても正解です。

入力例 1

5
0 0 4 0 0
1 0 2 0 1

出力例 1

2
1 1 3
1 3 3 2 4

箱 3,3,2,43,3,2,4 の順に操作します。石の個数は次のように変化します。

(0,0,4,0,0)
(0,1,2,1,0)
(0,2,0,2,0)
(1,0,1,2,0)
(1,0,2,0,1)

入力例 2

5
1 1 1 2 1
0 0 2 2 2

出力例 2

-1

操作を行うことはできますが、目標の配置にはできません。

入力例 3

3
1000000000 0 0
0 500000000 500000000

出力例 3

1
500000000 1 1

箱 11 を 500000000500000000 回操作することで、目標の配置になります。

入力例 4

4
0 7 0 3
0 7 0 3

出力例 4

0

最初から目標の配置になっているため、操作は必要ありません。

入力例 5

4
2 0 0 0
1 1 0 0

出力例 5

-1

スペシャルジャッジ問題:提出の出力を検証コードで判定します。