সমস্যা বিবরণ
একটি পূর্ণসংখ্যা N দেওয়া আছে। আমাদের কাজ হল প্রথম N প্রাকৃতিক সংখ্যার Good Permutation বের করা।
Good Permutation: পি₁ = i এবং p_{p_i} = i সিদ্ধ করে এমন পারমিউটেশন।
উদাহরণ
ইনপুট: N = 1 আউটপুট: -1 (সম্ভব নয়)
সমাধানের পদ্ধতি
N বিজোড় হলে সম্ভব নয়। N জোড় হলে (2,1), (4,3), (6,5)... এই জোড়া গুলো বানানো।
প্রোগ্রাম উদাহরণ
#include <iostream>
using namespace std;
void printGoodPermutation(int n) {
if(n%2!=0) { cout << -1; return; }
for(int i=1;i<=n/2;i++)
cout << 2*i << " " << 2*i-1 << " ";
}
int main() {
printGoodPermutation(4); // 2 1 4 3
return 0;
}
আউটপুট
2 1 4 3