- 论坛徽章:
- 0
|
回复 #1 天魔封神霸 的帖子
#!/usr/bin/env python
# python 2.4+
a = [20,5,3]
b = [2,1,1]
def sum(lst):
return reduce(lambda x,y: x+y,lst)
def do(d):
global a,b
x = -1
for i in xrange(a):
for j in xrange(b):
c = a[ i] - b[j]
if c > 0 and c <= d/2:
if x == -1 or c > x:
x = c
ai = i
bj = j
if x == -1:
return False
else:
a[ai],b[bj] = b[bj],a[ai]
return True
def main():
global a,b
while True:
if sum(a) < sum(b):
a,b = b,a
a.sort(reverse=True)
b.sort(reverse=True)
Diff = sum(a) - sum(b)
if do(Diff):
continue
else:
print a
print b
break
if __name__ == '__main__':
main()
[root@web ~]# python test.py
[20, 1, 1]
[2, 5, 3]
虽然代码比较臃肿,但基本功能能实现。
[ 本帖最后由 toakee 于 2009-9-8 10:42 编辑 ] |
|