結果

問題 No.130 XOR Minimax
ユーザー Hachimori
提出日時 2015-01-17 16:48:56
言語 Python2
(2.7.18)
結果
AC  
実行時間 1,012 ms / 5,000 ms
コード長 999 bytes
コンパイル時間 773 ms
コンパイル使用メモリ 7,072 KB
実行使用メモリ 35,556 KB
最終ジャッジ日時 2024-09-12 22:33:56
合計ジャッジ時間 11,707 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 21
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#!/usr/bin/env python
#coding:utf8
def read():
N = input()
return map(int, raw_input().split())
def rec(bit, vList):
if bit == -1:
return (0, 0)
zeroList = []
oneList = []
for v in vList:
if v & (1 << bit):
oneList.append(v)
else:
zeroList.append(v)
if zeroList and oneList:
(x1, val1) = rec(bit - 1, oneList)
(x2, val2) = rec(bit - 1, zeroList)
if val1 < val2:
return (x1 , val1 + (1 << bit))
else:
return (x2 + (1 << bit), val2 + (1 << bit))
elif not zeroList and oneList:
(x, val) = rec(bit - 1, oneList)
return (x + (1 << bit), val)
elif zeroList and not oneList:
(x, val) = rec(bit - 1, zeroList)
return (x, val)
else:
assert False
def work(vList):
(x, val) = rec(32, vList)
print val
if __name__ == "__main__":
work(read())
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
2