Défi lié au marketing à plusieurs niveaux.
Un pair veut être récompensé. Il a donc attiré des Ninvestisseurs ( 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] >= Tun 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>=Metk<=N, toutkinvestisseur doit investir au moinsT/kchacun;
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>=Met k<=N:
- l'un
kdesNinvestisseurs a investi au moinsT/kchacun
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
trueFalsey et une valeur pour false?
len(x)sera plus courte que l'écritureN. Cela est fait, car pour le tableau alloué dynamiquementxen 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, Mcomme des constantes définies en externe ou comme des éléments de langage intégrés.