Run ID:84983

提交时间:2024-07-16 15:30:44

def find_combinations(n, m): count = 0 # 总共有2^n种组合方式 for i in range(0, 1 << n): # 从000...1到111...1 subset1 = [] subset2 = [] sum1, sum2 = 0, 0 # 根据位掩码i生成两个子数组 for j in range(n): if i & (1 << j): subset1.append(j + 1) sum1 += j + 1 else: subset2.append(j + 1) sum2 += j + 1 #print(subset1,subset2) # 检查两个子数组的和的差值是否等于M if abs(sum1 - sum2) == m: count += 1 return count//2 # 读取输入的两个正整数N和M n, m = map(int, input().split()) # 输出符合条件的拆分方案数 print(find_combinations(n, m))