Home > Web Front-end > HTML Tutorial > Codeforces Round #144 (Div. 2)-A. Perfect Permutation_html/css_WEB-ITnose

Codeforces Round #144 (Div. 2)-A. Perfect Permutation_html/css_WEB-ITnose

WBOY
Release: 2016-06-24 11:55:04
Original
1151 people have browsed it

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

Sample test(s)

input

output

-1
Copy after login

input

output

2 1 
Copy after login

input

output

2 1 4 3 
Copy after login




解题思路:贪心。直接构造。如果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 0x7fffffffint main(){    #ifdef sxk        freopen("in.txt","r",stdin);    #endif    int n;    while(scanf("%d",&n)!=EOF)    {        if(n&1){            printf("-1\n");            continue;        }        else{            for(int i=1; i<n/2; i++)                printf("%d %d ", 2*i, 2*i-1);            printf("%d %d\n", n, n-1);        }    }    return 0;}
Copy after login


source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template