CodeForces - 233A Perfect Permutation
A. Perfect Permutation
time limit per test: 2 seconds
memory limit per test: 256 megabytes
input: standard input
output: standard output
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
4
output
2 1 4 3
- 关键是两个公式:ppi = i and pi ≠ i.;把奇偶两位互换即可,当然n得是偶数;
#include <iostream> using namespace std; int main()
{
int n;
cin >> n;
if( n % 2 == 1 )
{
cout << -1 <<endl;
}
else
{
int i, a[101];
for( i=1; i<=n; i++ )
{
if( i % 2 == 1 )
{
a[i] = i + 1;
}
else
{
a[i] = i - 1;
}
}
for( i=1; i<n; i++ )
{
cout << a[i] << " ";
}
cout << a[i] << endl;
}
return 0;
}
最新文章
- JDBC介绍
- linq 日期分组统计
- css多栏自适应布局
- iOS 初步单元测试
- js 一些技巧
- convert2Mp4 code snippet
- alpha预乘
- oracle8
- Cent OS 命令行和窗口界面默认登录切换方法
- 转:CentOS6.3配置yum源
- CSS之box-sizing的用处简单介绍
- 【one day one linux】find 用法详解小记
- TrueType字体的后缀名解释
- 用excel记录测试bug问题总结
- 论文笔记:Joint Embeddings of Shapes and Images via CNN Image Purification
- 浅谈Java简单实现的生产者与消费者问题
- springboot学习章节代码-spring高级话题
- 软件项目第一次sprint评分表
- 基于DPI(深度报文解析)的应用识别
- 一些unity问题的收集