程序员人生 网站导航

Codeforces Round #144 (Div. 2)---A. Perfect Permutation

栏目:互联网时间:2014-11-10 08:33:59

Perfect Permutation
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

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.

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 ⑴. Otherwise print n distinct integers from 1 to np1,?p2,?...,?pn ― permutation p, that is perfect. Separate printed numbers by whitespaces.

Sample test(s)
input
1
output
input
2
output
2 1
input
4
output
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("⑴ "); continue; } else{ for(int i=1; i<n/2; i++) printf("%d %d ", 2*i, 2*i⑴); printf("%d %d ", n, n⑴); } } return 0; }


------分隔线----------------------------
------分隔线----------------------------

最新技术推荐