結果
| 問題 | 
                            No.130 XOR Minimax
                             | 
                    
| コンテスト | |
| ユーザー | 
                             yaoshimax
                         | 
                    
| 提出日時 | 2015-04-27 01:40:45 | 
| 言語 | PyPy2  (7.3.15)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 108 ms / 5,000 ms | 
| コード長 | 600 bytes | 
| コンパイル時間 | 2,147 ms | 
| コンパイル使用メモリ | 76,308 KB | 
| 実行使用メモリ | 86,580 KB | 
| 最終ジャッジ日時 | 2024-09-12 22:34:52 | 
| 合計ジャッジ時間 | 4,595 ms | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge4 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 3 | 
| other | AC * 21 | 
ソースコード
N=int(raw_input())
A=map(int,raw_input().split())
A.sort()
bit=1
while A[N-1]>=2*bit:
    bit*=2
area=[(0,N)]
ans=0
while bit>0:
    area1=[]
    area2=[]
    for s,t in area:
    #    print s,t
        if (A[s]&bit)==(A[t-1]&bit):
            area1.append((s,t))
        else:
            for k in range(s,t):
                if (A[k]&bit) > 0:
                    area2.append((s,k))
                    area2.append((k,t))
                    break
    #print
    if len(area1)>0:
        ans*=2
        area=area1
    else:
        ans*=2
        ans+=1
        area=area2
    bit/=2
print ans
            
            
            
        
            
yaoshimax