बहु-स्तरीय विपणन संबंधी चुनौती।
एक सहकर्मी पुरस्कृत होना चाहता है। इसलिए इसने Nनिवेशकों को आकर्षित किया ( N>=1), प्रत्येक i-th निवेशक ने निवेश किया x[i]। जब कुल राशि सीमा से अधिक होती है तो x[0]+x[1]+...+x[N-1] >= Tएक सहकर्मी को पुरस्कृत किया जा सकता है। लेकिन केवल तभी जब निम्न स्थितियां संतुष्ट हों:
- निवेशकों की न्यूनतम राशि
M(M<=N) से अधिक होनी चाहिए - कम से कम एक पूर्णांक के लिए
k, जहांk>=Mऔरk<=N, किसी भीkनिवेशक को कम से कमT/kप्रत्येक निवेश करना होगा ;
यह देखते हुए N, x[], T, Mकि आपको यह निर्धारित करना चाहिए कि सहकर्मी का पुरस्कार उत्पन्न हुआ है या नहीं (बूलियन परिणाम, "हाँ" या "नहीं")। सबसे छोटा कोड जीतता है।
उदाहरण:
N=5; M=3; T=10000, सहकर्मी के इनाम को उत्पन्न करने के लिए निम्नलिखित में से एक को संतुष्ट होना चाहिए:
- किसी भी 3 ने कम से कम 3334 निवेश किया
- किसी भी 4 ने कम से कम 2500 का निवेश किया है
- सभी 5 ने कम से कम 2000 का निवेश किया
N=6; M=2; T=5000:
- किसी भी 2 ने कम से कम 2500 का निवेश किया है
- किसी भी 3 ने कम से कम 1667 का निवेश किया
- किसी भी 4 ने कम से कम 1250 का निवेश किया
- किसी भी 5 ने कम से कम 1000 निवेश किए
- सभी 6 ने कम से कम 834 निवेश किए
सामान्यीकृत: किसी भी k, जहां k>=Mऔर k<=N:
- निवेशकों में से किसी
kनेNकम से कमT/kप्रत्येक में निवेश किया है
परीक्षण के मामलों:
प्रारूप:
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और सत्य मूल्य के लिए false?
len(x)से छोटा होगाN। यह बनाया गया है, क्योंकिxसी में गतिशील रूप से आवंटित सरणी के लिए कोई प्रत्यक्षlen(x)कार्य नहीं है - इसलिए आप हमेशा लंबाई का उल्लेख कर सकते हैंN। सुविधा के लिए, आप सभी इनपुट डेटाN, x[], T, Mको कुछ बाहरी रूप से परिभाषित स्थिरांक या कुछ भाषा में निर्मित इन्स के रूप में मान सकते हैं ।