ধরুন আমাদের দুটি পূর্ণসংখ্যা N এবং K আছে। আমাদের 2N সংখ্যার প্রাকৃতিক সংখ্যার প্রথম স্থানান্তর খুঁজে বের করতে হবে, যেমন নিম্নলিখিত সমীকরণটি সন্তুষ্ট হয়।
$$\displaystyle\sum\limits_{i=1}^N\lvert A_{2i-1}-A_{2i}\rvert+\lvert \displaystyle\sum\limits_{i=1}^N A_{2i-1 }-A_{2i} \rvert=2K$$
K-এর মান N এর থেকে কম বা সমান হওয়া উচিত। উদাহরণস্বরূপ, যদি N =4 এবং K =1 হয়, তাহলে আউটপুট হবে 2 1 3 4। প্রদত্ত রাশিটির ফলাফল হবে (|2 – 1| + | 3 – 4|) – (|2 – 1 + 3 – 4|) =2।
ধারণাটি সহজ, বিবেচনা করুন আমাদের 1, 2, 3, 4, 5, 6, ... এর মতো একটি সাজানো ক্রম রয়েছে। যদি আমরা যেকোন দুটি সূচক 2i – 1 এবং 2i অদলবদল করি, ফলাফলটি ঠিক 2 দ্বারা বৃদ্ধি পাবে। আমাদের কে এই ধরনের অদলবদল করতে হবে।
উদাহরণ
#include<iostream> using namespace std; void showPermutations(int n, int k) { for (int i = 1; i <= n; i++) { int a = 2 * i - 1; int b = 2 * i; if (i <= k) cout << b << " " << a << " "; else cout << a << " " << b << " "; } } int main() { int n = 4, k = 2; showPermutations(n, k); }
আউটপুট
2 1 4 3 5 6 7 8