मान लीजिए कि हमारे पास n तत्वों के साथ एक सरणी A है। एक फ़ंक्शन एफ (पी) पी में आसन्न तत्वों के योग की एक क्रमबद्ध सरणी है। तो एफ (पी) =सॉर्ट ([पी 1 + पी 2, पी 2 + पी 3, ... पीएन -1 + पीएन])। हमारे पास ए में प्रतिनिधित्व किया गया क्रमपरिवर्तन है। हमें ए के विभिन्न क्रमपरिवर्तन को ढूंढना है जहां एफ (ए) समान है।
इसलिए, यदि इनपुट ए =[2, 1, 6, 5, 4, 3] जैसा है, तो आउटपुट [1, 2, 5, 6, 3, 4] होगा, क्योंकि एफ (ए) =सॉर्ट ( [2+1, 1+6, 6+5, 5+4, 4+3]) =सॉर्ट ([3, 7, 11, 9, 7]) =[3,7,7,9,11]। और सॉर्ट ([1+2, 2+5, 5+6, 6+3, 3+4]) =सॉर्ट ([3, 7, 11, 9, 7]) =[3, 7, 9, 1 1]। (अन्य उत्तर भी हो सकते हैं)
कदम
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
n := size of A for initialize i := n - 1, when i >= 0, update (decrease i by 1), do: print A[i]प्रिंट करें
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <bits/stdc++.h> using namespace std; void solve(vector<int> A) { int n = A.size(); for (int i = n - 1; i >= 0; i--) cout << A[i] << ", "; } int main() { vector<int> A = { 2, 1, 6, 5, 4, 3 }; solve(A); }
इनपुट
{ 2, 1, 6, 5, 4, 3 }
आउटपुट
3, 4, 5, 6, 1, 2,