Description
A permutation is a sequence of integers p1, p2, ..., pn, consisting of n distinct positive integers, each of them doesn't exceed n. Let's denote the i-th element of permutation p as pi. We'll call number n the size of permutation p1, p2, ..., pn.
Nickolas adores permutations. He likes some permutations more than the others. He calls such permutations perfect. A perfect permutation is such permutation p that for any i(1 ≤ i ≤ n) (n is the permutation size) the following equations hold ppi = i and pi ≠ i. Nickolas asks you to print any perfect permutation of size n for the given n.
Input
A single line contains a single integer n (1 ≤ n ≤ 100) — the permutation size.
Output
If a perfect permutation of size n doesn't exist, print a single integer -1. Otherwise print n distinct integers from 1 to n, p1, p2, ..., pn — permutation p, that is perfect. Separate printed numbers by whitespaces.
Sample Input
1
-1
2
2 1
4
2 1 4 3
只有偶数有答案,两两翻转。
#include<cstdio>
#include<iostream>
using namespace std;
int main(){
int n,i;
while(cin>>n){
if(n%2){
cout<<"-1"<<endl;
}
else{
for(i=1;i<=n;i+=2){
if(i==n-1){
cout<<i+1<<" "<<i<<endl;
}
else{
cout<<i+1<<" "<<i<<" ";
}
}
}
}
return 0;
}
该问题要求构造一种特殊的排列——完美排列,即一个长度为n的序列,其中每个元素等于其索引且不与其所在位置相同。当n为偶数时存在完美排列,此时可以将1到n的数字两两配对,交换每对数字的位置。输入一个整数n,输出一个完美排列或-1表示不存在。
390

被折叠的 条评论
为什么被折叠?



