Défi lié au marketing à plusieurs niveaux.
Un pair veut être récompensé. Il a donc attiré des N
investisseurs ( N>=1
), chaque i-ème investisseur ayant investi x[i]
. Lorsqu'une somme totale dépasse le seuil, x[0]+x[1]+...+x[N-1] >= T
un pair pourrait être récompensé. Mais seulement si les conditions suivantes sont remplies:
- Le nombre minimum d'investisseurs doit être supérieur à
M
, (M<=N
) - Pour au moins un entier
k
, oùk>=M
etk<=N
, toutk
investisseur doit investir au moinsT/k
chacun;
Donné N, x[], T, M
vous devez déterminer si la récompense du pair est générée ou non (résultat booléen, «oui» ou «non»). Le code le plus court gagne.
Exemples:
N=5; M=3; T=10000
, afin de générer la récompense du pair, l'une des conditions suivantes doit être remplie:
- 3 investis au moins 3334 chacun
- 4 investis au moins 2500 chacun
- chacun des 5 a investi au moins 2000 chacun
N=6; M=2; T=5000
:
- 2 investis au moins 2500 chacun
- 3 investis chacun au moins 1667
- 4 investis au moins 1250 chacun
- 5 investis au moins 1 000 chacun
- chacun des 6 a investi au moins 834 chacun
généralisé: pour tout k
, où k>=M
et k<=N
:
- l'un
k
desN
investisseurs a investi au moinsT/k
chacun
Cas de test:
format:
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
Falsey et une valeur pour false
?
len(x)
sera plus courte que l'écritureN
. Cela est fait, car pour le tableau alloué dynamiquementx
en C, il n'y a pas delen(x)
fonction directe - vous pouvez donc toujours faire référence à la longueur commeN
. Pour plus de commodité, vous pouvez considérer toutes les données d'entréeN, x[], T, M
comme des constantes définies en externe ou comme des éléments de langage intégrés.