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 perfectpermutation 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.
A single line contains a single integer n (1 ≤ n ≤ 100) — the permutation size.
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.
1
-1
2
2 1
4
2 1 4 3
解题思路:贪心。直接构造。如果n为奇数,则不能构成满足要求的排列;否则,两个两个的构造,如2,1;4,3。。。以此类推即可。
AC代码:
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <algorithm>
#include <vector>
#include <queue>
#include <set>
#include <map>
#include <string>
#include <math.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define INF 0x7fffffff
int main()
{
#ifdef sxk
freopen("in.txt","r",stdin);
#endif
int n;
while(scanf("%d",&n)!=EOF)
{
if(n&1){
printf("-1\n");
continue;
}
else{
for(int i=1; i<n/2; i++)
printf("%d %d ", 2*i, 2*i-1);
printf("%d %d\n", n, n-1);
}
}
return 0;
}