python TI MUhttps://dmoj.ca/problem/coci08c2p3

https://dmoj.ca/problem/coci08c2p3
请进入此链接查看题目,要求运行时间不超过0.6s
pthon3

def hanshu(i,a,b):
    global x
    if i>n:        
        if a==1 and b==0:
            return None
        x=min(abs(a-b),x)
        return None
    hanshu(i+1,a*ls[i-1][0],b+ls[i-1][1])
    hanshu(i+1,a,b)
x=float("inf")       
n=int(input())
ls=[]
for i in range(n):
    a,b=map(int,input().split())
    ls.append([a,b])
hanshu(1,1,0)
print(x)

望采纳

from itertools import combinations
n = int(input())
ingredients = []
for i in range(n):
  s, b = map(int, input().split())
  ingredients.append((s, b))
smallest_difference = float('inf')
for combination in combinations(ingredients, 1):
  total_sourness = 1
  total_bitterness = 0
  for ingredient in combination:
    total_sourness *= ingredient[0]
    total_bitterness += ingredient[1]
  difference = abs(total_sourness - total_bitterness)
  smallest_difference = min(smallest_difference, difference)
print(smallest_difference)
from itertools import combinations
from functools import reduce
import time

n = int(input())

t_v= []
for i in range(n):
    v =list(map(int, input().split()))
    t_v.append(v)
result = []
a = time.time()
for i in range(1, n + 1):
    res = combinations(t_v, i)
    res = list(res)
    r = list(map(lambda x : reduce(lambda p, q:p +q[1],x,0), res))
    r1 = list(map(lambda x : reduce(lambda p, q:p * q[0],x,1), res))
    result.extend(list(zip(r, r1)))

res = min(result, key = lambda x: abs(x[0] - x[1]))
print(abs(res[0] - res[1]))
print(time.time() - a)

--result
4
1 7
2 6
3 8
4 9
1
0.0


如有帮助,采纳

def hanshu(i,a,b):
    global x
    if i>n:        
        if a==1 and b==0:
            return None
        x=min(abs(a-b),x)
        return None
    hanshu(i+1,a*ls[i-1][0],b+ls[i-1][1])
    hanshu(i+1,a,b)
x=float("inf")       
n=int(input())
ls=[]
for i in range(n):
    a,b=map(int,input().split())
    ls.append([a,b])
hanshu(1,1,0)
print(x)