Multi-Level-Marketing-Herausforderung.
Ein Peer möchte belohnt werden. Es zog also NInvestoren an ( N>=1), jeder i-te Investor investierte x[i]. Wenn eine Gesamtsumme den Schwellenwert überschreitet, kann x[0]+x[1]+...+x[N-1] >= Tein Peer belohnt werden. Aber nur wenn folgende Bedingungen erfüllt sind:
- Die Mindestanzahl an Anlegern sollte größer sein als
M(M<=N) - Für mindestens eine Ganzzahl
k, bei derk>=Mundk<=NjederkAnleger mindestensT/kjede investieren muss;
Vorausgesetzt, N, x[], T, MSie sollten bestimmen, ob die Belohnung des Peers generiert wird oder nicht (boolesches Ergebnis, "Ja" oder "Nein"). Der kürzeste Code gewinnt.
Beispiele:
N=5; M=3; T=10000Um die Belohnung des Peers zu generieren, muss eine der folgenden Bedingungen erfüllt sein:
- 3 investierten jeweils mindestens 3334
- 4 investierten jeweils mindestens 2500
- Alle 5 investierten jeweils mindestens 2000
N=6; M=2; T=5000::
- 2 investierten jeweils mindestens 2500
- 3 investierten jeweils mindestens 1667
- 4 investierten jeweils mindestens 1250
- 5 investierten jeweils mindestens 1000
- Alle 6 investierten jeweils mindestens 834
verallgemeinert: für jeden k, wo k>=Mund k<=N:
- jeder
kderNAnleger investiert mindestensT/kjeweils
Testfälle:
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
trueund ein wahrer Wert für false?
len(x)wird das Schreiben kürzer sein als das SchreibenN. Dies ist gemacht, weil es für dynamisch zugewiesene Arraysxin C keine direktelen(x)Funktion gibt - Sie können sich also immer auf die Länge als beziehenN. Der Einfachheit halber können Sie alle EingabedatenN, x[], T, Mals extern definierte Konstanten oder als integrierte Sprache betrachten.