2009/2010 ACM International Collegiate Programming Contest
University of Ulm Local Contest

# Problem C: Cyclic antimonotonic permutations

Source file: cyclic.(c|cc|hs|java|pas)
Input file: cyclic.in

A permutation is a sequence of integers which contains each integer from 1 to n exactly once. In this problem we are looking for permutations with special properties:

1. Antimonotonic: for each consecutive 3 values pi-1, pi, pi+1 (1 < i < n), pi should either be the smallest or the biggest of the three values.
2. Cyclic: The permutation should consist of only one cycle, that is, when we use pi as a pointer from i to pi, it should be possible to start at position 1 and follow the pointers and reach all n positions before returning to position 1.

#### Input Specification

The input file contains several test cases. Each test case consists of a line containing an integer n, (3 ≤ n ≤ 106), the number of integers in the permutation. Input is terminated by n=0.

#### Output Specification

For each test case print a permutation of the integers 1 to n which is both antimonotonic and cyclic. In case there are multiple solutions, you may print any one. Separate all integers by whitespace characters.

#### Sample Input

    3
    5
    10
    0

#### Sample Output

    3 1 2
    4 5 2 3 1
    6 10 2 9 3 5 4 7 1 8