एक वेक्टर की संचयी राशि की गणना केवल पिछले सभी तत्वों के योग द्वारा की जाती है। उदाहरण के लिए:
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 3 2 1 0 -1 -2 -1 0 1 2 1]
अब, एक ऊपरी और निचली सीमा लागू करें, जिसका अर्थ है कि आप संचयी योग को बढ़ाना बंद कर देते हैं यदि यह ऊपरी सीमा पर है, और कम सीमा पर यह संचयी योग को कम करना बंद कर देता है। एक सरल उदाहरण:
upper_lim = 2
lower_lim = -1
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 2 1 0 -1 -1 -1 0 1 2 2 1]
इनपुट वेक्टर में पूर्णांक होते हैं, केवल आवश्यक नहीं 1
और -1
, सकारात्मक और नकारात्मक दोनों। मान लिया कि upper_lim >= lower_lim
। यदि वेक्टर का पहला तत्व सीमा के बाहर है, तो सीधे सीमा पर जाएं (अंतिम उदाहरण देखें)।
एक फ़ंक्शन लिखें जो पूर्णांक के वेक्टर को इनपुट के रूप में लेता है, और दो पूर्णांक जो ऊपरी और निचली सीमाओं का प्रतिनिधित्व करते हैं। जैसा कि ऊपर बताया गया है, संचयी वेक्टर वेक्टर आउटपुट। इनपुट या तो कार्य तर्कों या STDIN से हो सकता है।
मानक कोड गोल्फ नियम लागू होते हैं।
उदाहरण:
upper_lim = 6
lower_lim = -2
vec = [1 4 3 -10 3 2 2 5 -4]
cum_vec = [1 5 6 -2 1 3 5 6 2]
upper_lim = 100
lower_lim = -100
vec = [1 1 1 1 1 1]
cum_vec = [1 2 3 4 5 6]
upper_lim = 5
lower_lim = 0
vec = [10 -4 -3 2]
cum_vec = [5 1 0 2]
upper_lim = 0
lower_lim = 0
vec = [3 5 -2 1]
cum_vec = [0 0 0 0]
upper_lim = 10
lower_lim = 5
vec = [1 4 6]
cum_vec = [5 9 10]
|
Note, jumped to 5, because 5 is the lower bound.