結果
問題 | No.2509 Beam Shateki |
ユーザー |
![]() |
提出日時 | 2024-12-22 01:18:26 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 238 ms / 2,000 ms |
コード長 | 1,568 bytes |
コンパイル時間 | 316 ms |
コンパイル使用メモリ | 82,584 KB |
実行使用メモリ | 101,380 KB |
最終ジャッジ日時 | 2024-12-22 01:18:41 |
合計ジャッジ時間 | 12,202 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 61 |
ソースコード
from collections import defaultdictH, W = map(int, input().split())A = [list(map(int, input().split())) for _ in range(H)]SUM = sum(sum(a) for a in A)if H == 1 or W == 1:exit(print(SUM))sumH = [0]*HsumW = [0]*WsumHW1 = [0]*(H+W-1)sumHW2 = [0]*(H+W-1)for i in range(H):for j in range(W):sumH[i] += A[i][j]sumW[j] += A[i][j]sumHW1[i-j] += A[i][j]sumHW2[i+j] += A[i][j]sumHS = sorted(sumH)sumWS = sorted(sumW)sumHW1S = sorted(sumHW1)sumHW2S = sorted(sumHW2)ans = max(sum(sumHS[-2:]), sum(sumWS[-2:]), sum(sumHW1S[-2:]), sum(sumHW2S[-2:]))D = defaultdict(int)for i in range(H):for j in range(W):T = (0, i, i-j)D[T] = A[i][j]T = (1, i, j)D[T] = A[i][j]T = (2, i, i+j)D[T] = A[i][j]T = (3, i-j, j)D[T] = A[i][j]T = (4, i-j, i+j)D[T] = A[i][j]T = (5, j, i+j)D[T] = A[i][j]for i in range(H):for j in range(-W+1, H):ans = max(ans, sumH[i]+sumHW1[j]-D[(0, i, j)])for i in range(H):for j in range(W):ans = max(ans, sumH[i]+sumW[j]-D[(1, i, j)])for i in range(H):for j in range(H+W-1):ans = max(ans, sumH[i]+sumHW2[j]-D[(2, i, j)])for i in range(-W+1, H):for j in range(W):ans = max(ans, sumHW1[i]+sumW[j]-D[(3, i, j)])for i in range(-W+1, H):for j in range(H+W-1):ans = max(ans, sumHW1[i]+sumHW2[j]-D[(4, i, j)])for i in range(W):for j in range(H+W-1):ans = max(ans, sumW[i]+sumHW2[j]-D[(5, i, j)])print(ans)