이 문제에서 우리는 정수 값 N입니다. 우리의 임무는 처음 N개의 자연수의 좋은 순열을 찾는 것입니다. .
순열은 배열의 순서와 관련하여 개체 집합의 전체 또는 일부를 배열하는 것입니다.
좋은 순열 $1\leqslant{i}\leqslant{N}$ 다음에 오는 순열입니다.
$P_{pi}\:=\:i$
$P_{p!}\:=\:i$
문제를 이해하기 위해 예를 들어 보겠습니다.
Input : N = 1 Output : -1
솔루션 접근 방식
문제에 대한 간단한 해결책은 순열을 찾는 것입니다. p와 같은 pi =나.
그런 다음 방정식을 재고하여 pi !=나. 따라서 $2x \leqslant x$와 같은 값 x에 대해 p 2x - 1 이 있습니다. 및 p 2k . 이제 n에 대한 순열 방정식을 만족하는 방정식이 있습니다. 다음은 방정식의 해입니다.
예시
솔루션 작동을 설명하는 프로그램
#include <iostream>
using namespace std;
void printGoodPermutation(int n) {
if (n % 2 != 0)
cout<<-1;
else
for (int i = 1; i <= n / 2; i++)
cout<<(2*i)<<"\t"<<((2*i) - 1)<<"\t";
}
int main() {
int n = 4;
cout<<"Good Permutation of first N natural Numbers : \n"; printGoodPermutation(n);
return 0;
} 출력
Good Permutation of first N natural Numbers : 2 1 4 3