結果

問題 No.3677 Global Checksum
コンテスト
ユーザー harurun
提出日時 2026-08-10 11:55:53
言語 PyPy3
(7.3.23)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
TLE  
実行時間 -
コード長 1,846 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 246 ms
コンパイル使用メモリ 95,956 KB
実行使用メモリ 298,732 KB
最終ジャッジ日時 2026-09-04 22:16:29
合計ジャッジ時間 4,780 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 11 TLE * 2 -- * 7
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

import sys
import _pypyjson
from __pypy__ import builders

MASK = 0xFFFFFFFF


def main():
    rd = sys.stdin

    H, W = map(int, rd.readline().split())
    src = rd.read()

    # 入力
    # 1 2 3
    # 4 5 6
    #
    # を
    # [1,2,3,4,5,6]
    #
    # という JSON 配列に変換する。
    #
    # PyPy の str.replace は RPython 側の replace を使う。
    s = src.replace(' ', ',').replace('\n', ',')

    # 末尾改行があると最後が ',' になる。
    # その場合はダミーの 0 を追加する。
    # T に加えても 0 なので pop すら不要。
    if src[-1] == '\n':
        s = ''.join(('[', s, '0]'))
    else:
        s = ''.join(('[', s, ']'))

    # ここで全整数を RPython 側で一気にパース
    a = _pypyjson.loads(s)

    # T = 全 A_ij の和 mod 2^32
    # ダミー 0 があっても問題なし
    T = sum(a) & MASK

    # a の先頭 H 要素を S_i で上書きする。
    # 新しい S 配列を作らない。

    if W == 1:
        pass

    elif W == 2:
        j = 0
        for i in range(H):
            a[i] = a[j] + a[j + 1]
            j += 2

    elif W == 3:
        j = 0
        for i in range(H):
            a[i] = a[j] + a[j + 1] + a[j + 2]
            j += 3

    elif W == 4:
        j = 0
        for i in range(H):
            a[i] = a[j] + a[j + 1] + a[j + 2] + a[j + 3]
            j += 4

    else:
        j = 0
        for i in range(H):
            end = j + W
            sm = 0
            while j < end:
                sm += a[j]
                j += 1
            a[i] = sm

    # 前に比較的速かった StringBuilder をそのまま使用
    out = builders.StringBuilder(H * 4)
    append = out.append

    for i in range(H):
        append(str((a[i] + T) & MASK))
        append('\n')

    sys.stdout.write(out.build())


main()
0