結果

問題 No.3550 Another Rurumaru Function Problem
コンテスト
ユーザー 👑 loop0919
提出日時 2026-04-22 21:18:56
言語 PyPy3
(7.3.17)
コンパイル:
pypy3 -mpy_compile _filename_
実行:
pypy3 _filename_
結果
AC  
実行時間 295 ms / 2,000 ms
コード長 824 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 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
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

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))
0