mを法とする和の計算
グラフィックスカード (GPU) 上での演算は非常に並列処理がしやすいという特徴があります。多くの数値に同じ種類の演算をまとめて実行できれば、個別に異なる種類の演算を行う場合よりも、高速に処理を進められるのです。チームは現在コードのテストを行っており、あなたには、異なる数 (m) を法として多数の数値の和を求めるプログラムを書いて結果を検証するように依頼してきました。
整数リスト と が与えられたとき、それぞれの要素の組 と の和を を法として計算してください。つまり、求める式は次のとおりです:
ただし、プログラミング言語によっては剰余演算 (mod) の実装が異なる点に注意してください。Python は剰余演算の結果が常に正になるように実装されていますが、C++ のような言語では -3 % 2 → -1 のように、負の値が返る場合があります。多く使われる方法としては、剰余を取った結果が負の値ならば、
if
文を使って m
を足すやり方があります。より汎用的な対処法としては、((a % m) + m) % m
のように、あらためて m
を足してもう一度剰余を取ることで、結果が常に正になるようにできます。 入力
最初の行には、要素数を示す整数
n
(1 ≤ n ≤ 100 000) が与えられます。2 行目には、
n
個の整数 (各 は 以上 以下) がスペース区切りで与えられます。次の行には、同じく
n
個の整数 (各 は 以上 以下) がスペース区切りで与えられます。最後の行には、
n
個の整数 (1 ≤ ≤ ) がスペース区切りで与えられます。 出力
n
個の整数 をスペース区切りで出力してください。 例
入力 | 出力 |
3
1 2 1
3 4 1
2 5 3 | 0 1 2 |
解説
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB