Codeforces-233A Perfect Permutation

来源:互联网 发布:ubuntu emacs 25 编辑:程序博客网 时间:2024/05/17 08:37
Perfect Permutation
Problem Description

A permutation is a sequence of integersp1,p2,...,pn, consisting ofn distinct positive integers, each of them doesn't exceedn. Let's denote thei-th element of permutation p aspi. We'll call numbern the size of permutationp1,p2,...,pn.

Nickolas adores permutations. He likes some permutations more than the others. He calls such permutations perfect. Aperfect permutation is such permutationp that for any i(1≤in) (n is the permutation size) the following equations holdppi=i andpii. Nickolas asks you to print any perfect permutation of sizen for the givenn.

 

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 permutationp, that is perfect. Separate printed numbers by whitespaces.

 

Sample Input
1
2
 

Sample Output
-1
2 1
 题目意思:
给你一个n,则会有排列p1,p2,p3,p4...pn,并且pi<=n,;
如果n的某个排列满足:ppi=i andpii.(1<=i<=n),则此排列为完美排列。
输出这个排列。。

可以找出规律,当n%2== 1 时,必定找不出符合条件的完美排列。。
所以有:
#include"stdio.h"int main(){int n;     while(scanf("%d", &n) != EOF)     {         if(n % 2)         {             printf("-1\n");         }         else         {             int i;             for(i = 1; i <= n; i++)             {                 if(i % 2)                 {                     printf("%d", i + 1);                 }                 else                     printf("%d", i - 1);                 if(i != n)                     printf(" ");             }             printf("\n");         } }return 0;}



原创粉丝点击