A. Perfect Permutation
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.
Examples
Input
1
Output
-1
Input
2
Output
2 1
Input
Output
2 1 4 3
题意:对1——n个数进行完美排列并输出,若不存在完美排列,输出-1
提示:n若为奇数,不存在完美排列,若存在,完美排列规则为:数列大体顺序顺序保持不变,其中奇数和偶数进行交换
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,i,a[105];
while(cin>>n)
{
if(n%2==1) cout<<"-1"<<endl;
else
{
for(i=1; i<=n; i++)
a[i]=i;
for(i=2; i<=n; i++)
{
if(a[i]%2==0) swap(a[i-1],a[i]);
}
for(i=1; i<=n; i++)
printf(i==n?"%d\n":"%d ",a[i]);
}
}
return 0;
}
余生还请多多指教!