Guest User

Untitled

a guest
Aug 2nd, 2012
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.47 KB | None | 0 0
  1. #!/usr/bin/env python
  2. #!-*- encoding: utf-8 -*-
  3.  
  4. import math
  5. import re
  6. import sys
  7.  
  8. def comb_gen(items, n=None):
  9.     if n is None:
  10.         n = len(items)
  11.     for i in range(len(items)):
  12.         v = items[i:i+1]
  13.         if n == 1:
  14.             yield v
  15.         else:
  16.             rest = items[i+1:]
  17.             for c in comb_gen(rest, n-1):
  18.                 yield v + c
  19.  
  20. def perm_gen(items, n=None):
  21.     if n is None:
  22.         n = len(items)
  23.     for i in range(len(items)):
  24.         v = items[i:i+1]
  25.         if n == 1:
  26.             yield v
  27.         else:
  28.             rest = items[:i] + items[i+1:]
  29.             for p in perm_gen(rest, n-1):
  30.                 yield v + p
  31.  
  32. def sum_element(lst):
  33.     s = 0
  34.     for e in lst:
  35.         s += int(e)
  36.     return s
  37.  
  38. def main():
  39.     ret = -1
  40.  
  41.     raw = sys.stdin.read()
  42.     rl = raw.split('\n')[1].split(' ')
  43.     rl.sort()
  44.     rl.reverse()
  45.     gl = []
  46.  
  47.     for i in range(len(rl), 0, -1):
  48.         cl = comb_gen(rl, i)
  49.         for l in cl:
  50.             if sum_element(l) % 3 != 0: continue
  51.             gl.append(l)
  52.  
  53.     gl = perm_gen(gl)
  54.     for ll in gl:
  55.         for l in ll:
  56.             if int(l[len(l)-1]) != 0 : continue
  57.             ret = ''.join(l)
  58.             ret = re.sub('^0*', '', ret)
  59.             if len(ret) != 0:
  60.                 ret = int(ret)
  61.             else:
  62.                 ret = 0
  63.             break
  64.         if ret != -1: break
  65.  
  66.     sys.stdout.write(str(ret))
  67.  
  68. if __name__ == '__main__':
  69.     main()
Advertisement
Add Comment
Please, Sign In to add comment