स्टैक ओवरफ्लो में एक प्रश्न से प्रेरित ।
पूर्णांक के एक गैर-खाली सरणी x
और एक सकारात्मक पूर्णांक को देखते हुए , सरणी के साथ लंबाई के प्रत्येक स्लाइडिंग ब्लॉक की राशि की n
गणना करें , बाईं ओर लापता मानों को दाएं से मानों के साथ गोलाकार रूप से भरें:n
x
- पहले ब्लॉक में पहली प्रविष्टि होती है
x
, जोn-1
गोलाकार रूप से स्थानांतरित प्रविष्टियों से पहले होती है ; - दूसरे ब्लॉक में पहली और दूसरी प्रविष्टियाँ हैं
x
, जो किn-2
गोलाकार रूप से स्थानांतरित प्रविष्टियों से पहले हैं; और इसी तरह।
आउटपुट सरणी y
का आकार समान है x
। यह संभव है n
की लंबाई से अधिक करने के लिए x
, और उसके बाद के मूल्यों x
चक्राकार कर रहे हैं पुन: उपयोग किया कई बार ।
उदाहरण
उदाहरण 1 (मान केवल एक बार पुन: उपयोग किए जाते हैं)
x = [2, 4, -3, 0, -4]
n = 3
आउटपुट के रूप में दे
y = [-2, 2, 3, 1, -7]
कहा पे
-2
ब्लॉक का योग है[0, -4, 2]
(पहले दो मान परिपत्र स्थानांतरण से आते हैं)2
का योग है[-4, 2, 4]
(पहला मूल्य परिपत्र स्थानांतरण से आता है)3
का योग है[2, 4, -3]
(अब आवश्यक कोई परिपत्र स्थानांतरण नहीं)1
का योग है[4, -3, 0]
-7
का योग है[-3, 0, -4]
।
उदाहरण 2 (मान कई बार पुन: उपयोग किए जाते हैं)
x = [1, 2]
n = 5
देना
y = [7, 8]
कहा पे
7
ब्लॉक का योग है[1, 2, 1, 2, 1]
(पहले चार मानों को गोलाकार रूप से पुन: उपयोग किया गया है)8
ब्लॉक का योग है[2, 1, 2, 1, 2]
(पहले तीन मानों को गोलाकार रूप से पुन: उपयोग किया गया है)
अतिरिक्त नियम
- एल्गोरिथ्म को मनमाने आकार के सरणियों के लिए और मनमाने ढंग से पूर्णांक मानों के लिए काम करना चाहिए। यह स्वीकार्य है यदि प्रोग्राम डेटा प्रकार या मेमोरी प्रतिबंधों द्वारा सीमित है; लेकिन सकारात्मक और साथ ही नकारात्मक पूर्णांक मानों को संभाला जाना चाहिए।
- इनपुट / आउटपुट किसी भी उचित माध्यम से लिया / उत्पादित किया जा सकता है ।
- प्रोग्राम या फ़ंक्शंस की अनुमति है, किसी भी प्रोग्रामिंग भाषा में । मानक खामियों को मना किया जाता है।
- बाइट्स में सबसे छोटा कोड जीतता है।
परीक्षण के मामलों
x, n, -> y
[2, 4, -3, 0, -4], 3 -> [-2, 2, 3, 1, -7]
[1, 2], 5 -> [7, 8]
[2], 7 -> [14]
[-5, 4, 0, 1, 0, -10, -4], 4 -> [-19, -15, -5, 0, 5, -9, -13]
[-5, 4, 0, 1, 0, -10, -4], 1 -> [-5, 4, 0, 1, 0, -10, -4]
[-2, -1, 0, 1, 2, 3], 5 -> [4, 3, 2, 1, 0, 5]
[-10, 0, 10], 4 -> [-10, 0, 10]