Wyzwanie związane z marketingiem wielopoziomowym.
Rówieśnik chce zostać nagrodzony. Przyciągnął więc Ninwestorów ( N>=1), każdego i-tego inwestora x[i]. Gdy suma przekroczy próg, x[0]+x[1]+...+x[N-1] >= Tpartner może zostać nagrodzony. Ale tylko wtedy, gdy spełnione są następujące warunki:
- Minimalna liczba inwestorów powinna być większa niż
M(M<=N) - Dla co najmniej jednego całkowitą
k, gdziek>=Mik<=Nwszelkiekinwestorów zainwestować przynajmniejT/kkażda;
Dany N, x[], T, M że powinieneś ustalić, czy nagroda partnera jest generowana, czy nie (wynik boolowski, „tak” lub „nie”). Najkrótszy kod wygrywa.
Przykłady:
N=5; M=3; T=10000, aby wygenerować nagrodę partnera, należy spełnić jedno z poniższych:
- dowolne 3 zainwestowały co najmniej 3334 każdy
- dowolne 4 zainwestowane co najmniej 2500 każdy
- wszystkie 5 zainwestowało co najmniej 2000
N=6; M=2; T=5000:
- dowolne 2 zainwestowane co najmniej 2500 każdy
- 3 dowolne zainwestowane co najmniej 1667 każdego
- każde 4 zainwestowało co najmniej 1250 każdego
- każde 5 zainwestowało co najmniej 1000 każdego
- wszystkie 6 zainwestowało co najmniej 834 każdy
uogólnione: dla każdego k, gdzie k>=Mi k<=N:
- każdy
kzNinwestorów zainwestował przynajmniejT/kkażdy
Przypadki testowe:
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
truei prawda false?
len(x)będzie krótsze niż pisanieN. Dzieje się tak, ponieważ dla dynamicznie alokowanej tablicyxw C nie ma bezpośredniejlen(x)funkcji - dlatego zawsze możesz odnosić się do długości jakoN. Dla wygody możesz rozważyć wszystkie dane wejścioweN, x[], T, Mjako niektóre zewnętrznie zdefiniowane stałe lub niektóre wbudowane języki.