Advertisement
xsot

GCJ: Candy Splitting

May 7th, 2011
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.68 KB | None | 0 0
  1. I,O=open('test.txt','rU'),open('output.txt','w')
  2. W,R=O.write,I.readline
  3.  
  4. from itertools import combinations
  5. from collections import Counter
  6.  
  7. def xor(s):
  8.   try: return reduce((lambda x,y: x^y),s)
  9.   except: return s
  10.  
  11. for main in xrange(int(R())):
  12.   N,biggest,line = int(R()),0,[int(i) for i in R().split(' ')]
  13.   for i in xrange(1,N/2+1):
  14.     for j in combinations(line,i):
  15.       k=[]
  16.       for i in (Counter(line)-Counter(j)).items(): # TOO SLOW!
  17.         k+=[i[0]]*i[1]
  18.       if xor(j)==xor(k):
  19.         if sum(j)>biggest: biggest = sum(j)
  20.         if sum(k)>biggest: biggest = sum(k)
  21.   if not biggest: biggest = 'NO'
  22.   W('Case #%d: %s\n'%(main+1,biggest))
  23.  
  24. I.close()
  25. O.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement