Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- #!-*- encoding: utf-8 -*-
- import math
- import re
- import sys
- def comb_gen(items, n=None):
- if n is None:
- n = len(items)
- for i in range(len(items)):
- v = items[i:i+1]
- if n == 1:
- yield v
- else:
- rest = items[i+1:]
- for c in comb_gen(rest, n-1):
- yield v + c
- def perm_gen(items, n=None):
- if n is None:
- n = len(items)
- for i in range(len(items)):
- v = items[i:i+1]
- if n == 1:
- yield v
- else:
- rest = items[:i] + items[i+1:]
- for p in perm_gen(rest, n-1):
- yield v + p
- def sum_element(lst):
- s = 0
- for e in lst:
- s += int(e)
- return s
- def main():
- ret = -1
- raw = sys.stdin.read()
- rl = raw.split('\n')[1].split(' ')
- rl.sort()
- rl.reverse()
- gl = []
- for i in range(len(rl), 0, -1):
- cl = comb_gen(rl, i)
- for l in cl:
- if sum_element(l) % 3 != 0: continue
- gl.append(l)
- gl = perm_gen(gl)
- for ll in gl:
- for l in ll:
- if int(l[len(l)-1]) != 0 : continue
- ret = ''.join(l)
- ret = re.sub('^0*', '', ret)
- if len(ret) != 0:
- ret = int(ret)
- else:
- ret = 0
- break
- if ret != -1: break
- sys.stdout.write(str(ret))
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment