与多层次营销相关的挑战。
一位同伴想要获得奖励。因此,它吸引了N
投资者(N>=1
),每个第i个投资者都进行了投资x[i]
。当总和超过阈值时x[0]+x[1]+...+x[N-1] >= T
,可以奖励同伴。但仅在满足以下条件时:
- 最低投资额应大于
M
(M<=N
) - 对于至少一个整数
k
,其中k>=M
和k<=N
,任何k
投资者必须至少投资T/k
每个;
给定N, x[], T, M
您应该确定是否生成对等方的奖励(布尔结果,“是”或“否”)。最短的代码获胜。
例子:
N=5; M=3; T=10000
,为了产生对等方的奖励,必须满足以下条件之一:
- 任何3家公司各投资至少3334
- 任何4家公司各投资至少2500
- 所有这5家公司各投资了至少2000
N=6; M=2; T=5000
:
- 任意2家各投资至少2500
- 任何3家公司各投资至少1667美元
- 任何4家公司各投资至少1250美元
- 任意5名至少投资1000美元
- 所有6家公司各投资了至少834美元
广义的:对于任何k
,其中k>=M
和k<=N
:
- 任何
k
的N
投资者投入至少T/k
每
测试用例:
格式:
N, x[], T, M -> correct answer
6, [999, 999, 59, 0, 0, 0], 180, 3 -> 0
6, [0, 60, 0, 60, 60, 0], 180, 3 -> 1
6, [179, 89, 59, 44, 35, 29], 180, 3 -> 0
6, [179, 89, 59, 44, 35, 30], 180, 3 -> 1
6, [179, 89, 59, 44, 36, 29], 180, 3 -> 1
6, [179, 90, 59, 44, 35, 29], 180, 3 -> 0
6, [30, 30, 30, 30, 29, 30], 180, 3 -> 0
6, [30, 30, 30, 30, 30, 30], 180, 3 -> 1
true
和真值false
?
len(x)
就会少于写作的时间N
。这样做是因为对于x
C中的动态分配数组没有直接len(x)
函数-因此您可以始终将length称为N
。为方便起见,您可以将所有输入数据N, x[], T, M
视为某些外部定义的常数或某些内置的语言。