输入数据有n+1行: 第一行为工程师人数n(1 ≤ n ≤ 6) 接下来的n行,每行一个字符串表示第i(1 ≤ i ≤ n)个人能够胜任的工作(字符串不一定等长的)
输出一个整数,表示有多少种不同的工作安排方案
6 012345 012345 012345 012345 012345 012345
720
n = int(input()) canDo = [input() for _ in range(n)] done = [False] * 6 def solve(i): if i == n: return 1 res = 0 for k in range(6): if not done[k] and (str(k) in canDo[i]): done[k] = True res += solve(i+1) done[k] = False return res print(solve(0))