Çok seviyeli pazarlama ile ilgili zorluk.
Bir akran ödüllendirilmek istiyor. Böylece Nyatırımcıları ( N>=1) çekti , her i-th yatırımcı yatırım yaptı x[i]. Toplam bir toplam eşiği aştığında x[0]+x[1]+...+x[N-1] >= Tbir akran ödüllendirilebilir. Ancak sadece aşağıdaki koşullar karşılandığında:
- Minimum yatırımcı tutarı
M(M<=N) - En az bir tamsayı için
k, neredek>=Mvek<=Nherhangi birkyatırımcı en azT/kher birine yatırım yapmak zorundadır ;
Verilen N, x[], T, Makran ödülünün yaratılıp yaratılmadığını belirlemelisiniz (boole sonucu, "evet" veya "hayır"). En kısa kod kazanır.
Örnekler:
N=5; M=3; T=10000, emsal ödülünü elde etmek için aşağıdakilerden biri yerine getirilmelidir:
- herhangi bir 3 en az 3334 yatırım yaptı
- herhangi bir 4 en az 2500 yatırım yaptı
- 5'in her biri en az 2000 yatırım yaptı
N=6; M=2; T=5000:
- herhangi 2 en az 2500 yatırım yaptı
- herhangi bir 3 en az 1667 yatırım yaptı
- herhangi bir 4 en az 1250 yatırım yaptı
- her 5 en az 1000 yatırım yaptı
- 6'sı da her biri en az 834 yatırım yaptı
genelleştirilmiş: herhangi biri için k, nerede k>=Mve k<=N:
- yatırımcılardan herhangi
kbiriNen azT/kher birine
Test senaryoları:
biçim:
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 değeri ve doğruluk değeri false?
len(x)daha kısa olacaktırN. Bu yapılır, çünküxC'de dinamik olarak tahsis edilen dizi için doğrudan birlen(x)işlev yoktur - bu nedenle her zaman uzunluğa olarak başvurabilirsinizN. Kolaylık sağlamak için, tüm giriş verileriniN, x[], T, Mharici olarak tanımlanmış sabitler veya bazı yerleşik diller olarak düşünebilirsiniz .