1

以下はInterviewstreetからの問題です誰かが私にいくつかのテストケースを出力と一緒に教えてもらえますか?私の解決策はすべてのテストケースの制限時間内ですが、間違った答えを出しています。

サークル合計(30ポイント)

N時計回りに番号が付けられた円に沿って座っている子供たちがい1,2,...,Nます。子供は番号が書かれた一枚のith紙を持っています。ai彼らは次のゲームをします:

最初のラウンドでは、番号が付けられた子供xは、彼の番号に彼の隣人の番号の合計を追加します。

第2ラウンドでは、時計回りの順序で次の子が自分の数に隣人の数の合計を加算します。

Mラウンドがプレイされた後、ゲームは終了します。

入力:最初の行にはT、テストケースの数が含まれています。Tケースが続きます。テストケースの最初の行には、スペースで区切られた2つの整数Nとが含まれていますM。次の行にはN整数が含まれており、ith数値はai。です。

出力:テストケースごとに、それぞれN個の整数を持つN行を出力します。行のjth整数には、子供が最初のラウンドをプレイすることithからゲームが開始された場合に、j番目の子供が終了する数が含まれます。i最後のテストケースを除く各テストケースの後に空白行を出力します。数値は非常に大きくなる可能性があるため、モジュロで出力します1000000007

制約:

1 <= T <= 15
3 <= N <= 50
1 <= M <= 10^9
1 <= ai <= 10^9

サンプル入力:

2
5 1
10 20 30 40 50
3 4
1 2 1

サンプル出力:

80 20 30 40 50
10 60 30 40 50
10 20 90 40 50
10 20 30 120 50
10 20 30 40 100



23 7 12
11 21 6
7 13 24 
4

1 に答える 1

1

すべてではありませんが、小さなテストケースで問題がないように思われる場合は、オーバーフローの問題があると思います。

どちらかを確認してください...

  • 3つの数値すべてを加算した直後ではなく、各加算後にモジュラスを実行します。
  • 64ビットの数値を使用します。これでもモジュラスが必要ですが、それほど頻繁ではありません。

1000000007は、符号付き32ビット数の制限(214748367)にかなり近いです。オーバーフローなしで変調数に追加できますが、3つは追加できません。

于 2012-05-20T13:46:10.923 に答える