結果
| 問題 | No.3550 Another Rurumaru Function Problem |
| コンテスト | |
| ユーザー |
👑 |
| 提出日時 | 2026-04-22 21:18:56 |
| 言語 | PyPy3 (7.3.17) |
| 結果 |
AC
|
| 実行時間 | 295 ms / 2,000 ms |
| コード長 | 824 bytes |
| 記録 | |
| コンパイル時間 | 383 ms |
| コンパイル使用メモリ | 85,504 KB |
| 実行使用メモリ | 101,760 KB |
| 最終ジャッジ日時 | 2026-05-22 21:46:53 |
| 合計ジャッジ時間 | 11,071 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge1_0 |
| 純コード判定待ち |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 41 |
ソースコード
LIMIT = 15
def f(x: int, y: int) -> int:
res = 0
for i in range(2 * LIMIT):
xi = (x >> i) & 1
yi = (y >> i) & 1
if i % 2 == 0:
res |= (xi & yi) << i
else:
res |= (xi | yi) << i
return res
def even(n: int) -> int:
res = 0
for i in range(LIMIT):
ni = (n >> (2 * i)) & 1
res |= ni << i
return res
N = int(input())
A = [int(s) for s in input().split()]
values = [0] * (1 << LIMIT)
for a in A:
even_a = even(a)
values[even_a] = max(a, f(values[even_a], a))
for bit in range((1 << LIMIT) - 1, -1, -1):
for i in range(LIMIT):
if (bit >> i) & 1 == 0:
continue
nbit = bit & ~(1 << i)
values[nbit] = max(values[nbit], values[bit], f(values[nbit], values[bit]))
print(max(values))