Buggy Sorting

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34195441/article/details/53556458

Little boy Valera studies an algorithm of sorting an integer array. After studying the theory, he went on to the practical tasks. As a result, he wrote a program that sorts an array of n integers a1, a2, …, an in the non-decreasing order. The pseudocode of the program, written by Valera, is given below. The input of the program gets number n and array a.

loop integer variable i from 1 to n - 1
loop integer variable j from i to n - 1
if (aj > aj + 1), then swap the values of elements aj and aj + 1
But Valera could have made a mistake, because he hasn’t yet fully learned the sorting algorithm. If Valera made a mistake in his program, you need to give a counter-example that makes his program work improperly (that is, the example that makes the program sort the array not in the non-decreasing order). If such example for the given value of n doesn’t exist, print -1.

Input
You’ve got a single integer n (1 ≤ n ≤ 50) — the size of the sorted array.

Output
Print n space-separated integers a1, a2, …, an (1 ≤ ai ≤ 100) — the counter-example, for which Valera’s algorithm won’t work correctly. If the counter-example that meets the described conditions is impossible to give, print -1.

If there are several counter-examples, consisting of n numbers, you are allowed to print any of them.

Example
Input
1
Output
-1

题目给出错误的冒泡排序法,求反例。

思路:…既然是错误的,任意输出一个递减的数列

#include<stdio.h> 
int main()
{
    int i,n;
    while(~scanf("%d",&n))
    {
        if(n<3)
        {
            printf("-1\n");
            continue;
        }
        printf("%d",n);
        for(i=n-1;i>0;i--)
            printf(" %d",i);
        printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_34195441/article/details/53556458