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的序列p,序列中的元素大小范围为[1,n]且各不同样。如今要求一个完美序列。使得 p[p[i]]=i&&p[i]!=i;
初看非常难。细致一想,如果初始化序列 f[i]=i; 如今仅仅要交换奇偶位置上的元素值就能够了 即 swap(s[i],s[i+1]) (i%2==1) 前提条件是序列的大小为偶数
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
#include <vector>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
if(n%2)
puts("-1");
else
for(int i=1;i<=n;i++)
if(i%2)
cout<<i+1<<" ";
else
cout<<i-1<<" ";
cout<<endl;
}
return 0;
}