結果
問題 |
No.1060 素敵な宝箱
|
ユーザー |
![]() |
提出日時 | 2020-05-22 23:16:47 |
言語 | PyPy3 (7.3.15) |
結果 |
WA
|
実行時間 | - |
コード長 | 889 bytes |
コンパイル時間 | 216 ms |
コンパイル使用メモリ | 81,880 KB |
実行使用メモリ | 77,988 KB |
最終ジャッジ日時 | 2024-10-05 20:51:18 |
合計ジャッジ時間 | 5,013 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 1 WA * 23 |
ソースコード
import sys input = sys.stdin.readline sys.setrecursionlimit(10 ** 6) N, M = map(int, input().split()) a = [list(map(int, input().split())) for _ in range(N)] vis = [0] * N resx = [0] * M resy = [0] * M def check(): res = 0 for i in range(M): res += resx[i] ** 2 - resy[i] ** 2 return res def solve(c): global vis, resx, resy mxi = -1 mx = c * 10 ** 19 for i in range(N): if vis[i]: continue for j in range(M): if c: resy[j] += a[i][j] else: resx[j] += a[i][j] t = check() if c: if mx > t: mx = t mxi = i else: if mx < t: mx = t mxi = i for j in range(M): if c: resy[j] -= a[i][j] else: resx[j] -= a[i][j] #print(mx, mxi) if mxi == -1: return for j in range(M): if c: resy[j] += a[mxi][j] else: resx[j] += a[mxi][j] vis[mxi] = 1 solve(c ^ 1) solve(0) print(check())