VJ——A. Perfect Permutation CodeForces - 233A
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; }
余生还请多多指教!
阅读更多- 【水题】CodeForces - 233A Perfect Permutation
- CodeForces 233A Perfect Permutation
- Codeforces 500B - New Year Permutation(最短路)
- Lucky Permutation Triple CodeForces - 303A
- 【CodeForces】500B - New Year Permutation(Floyd)(贪心)
- codeforces 233A
- CodeForces 303 A.Lucky Permutation Triple(构造)
- CodeForces - 359B B. Permutation
- 【CodeForces 676】A - Nicholas and Permutation
- 【codeforces 785E】Anton and Permutation
- 【CodeForces】500B - New Year Permutation(Floyd)(贪心)
- CodeForces Good Bye 2014 B. New Year Permutation
- CodeForces 500B Good Bye 2014 New Year Permutation
- Codeforces 864D - Make a Permutation! 【贪心】
- Codeforces 612E - Square Root of Permutation (置换+构造)
- CodeForces 388 D.Fox and Perfect Sets(线性基+dp)
- codeforces 864D - Make a Permutation!
- 【CodeForces】500B - New Year Permutation(Floyd)(贪心)
- Codeforces 785E Anton and Permutation(分块)
- CodeForces 622 D.Optimal Number Permutation(构造)