Google Code Jam 2011 Qualification Round C. Candy Splitting

Candy Splitting

Patrickの計算はxor。全ての飴の価値のxorが0である場合かつこの場合に限り、2つに分けた飴それぞれのxorが等しくなる。この時どのように分けても良いので、Patrickには1番安い飴を1つあげれば良い。Patrick……(´;ω;`)ブワッ

for t in range(input()):
    input()
    C = map(int,raw_input().split())
    print "Case #%s:" % (t+1),
    if reduce(lambda x,y: x^y, C) == 0:
        print sum(C)-min(C)
    else:
        print "NO"