結果
問題 | No.2261 Coffee |
ユーザー |
👑 |
提出日時 | 2024-04-27 15:26:31 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 1,449 ms / 2,000 ms |
コード長 | 863 bytes |
コンパイル時間 | 300 ms |
コンパイル使用メモリ | 82,108 KB |
実行使用メモリ | 91,520 KB |
最終ジャッジ日時 | 2024-11-15 18:49:40 |
合計ジャッジ時間 | 28,884 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 42 |
ソースコード
n = int(input()) A = [list(map(int, input().split())) for _ in range(n)] inf = 1 << 80 fi = [-inf] * 32 se = [-inf] * 32 for bit in range(32): for i, row in enumerate(A): tot = 0 for j in range(5): if bit >> j & 1: tot += row[j] else: tot -= row[j] tmp = tot * n + i if tmp > se[bit]: se[bit] = tmp if se[bit] > fi[bit]: fi[bit], se[bit] = se[bit], fi[bit] for i, row in enumerate(A): ans = 0 for bit in range(32): tot = 0 for j in range(5): if bit >> j & 1: tot -= row[j] else: tot += row[j] if i == fi[bit] % n: ans = max(ans, tot + se[bit] // n) else: ans = max(ans, tot + fi[bit] // n) print(ans)