• 校赛F


    问题描述

             例如对于数列[1 2 3 4 5 6],排序后变为[6 1 5 2 4 3]。换句话说,对于一个有序递增的序列a1, a2, a3, ……, an,排序后为an, a1, an-1, a2, an-2, a3, …。即从最大到最小,次大到次小,依次排序。

    输入

    共两行。

    第一行一个数字n(1≤n≤1000),表示序列长度。

    第二行为一个长度为n的无序数字串。

    输出

    一个按规则排好序的数字串。

    样例输入

    5

    1 2 3 4 5

    样例输出

    5 1 4 2 3

    #include <bits/stdc++.h>
    using namespace std;
    int t[1001];
    int main()
    {
        int a[1005],b[1005],n;
        while(cin>>n)
        {
            for(int i=1;i<=n;i++)
                cin>>a[i];
                sort(a+1,a+n+1);
            if(n & 1)//奇数 
            {
                int s=1;
                for(int i=n;i>n/2+1;i--)
                {
                    b[s]=a[i];
                    s+=2;
                }
                int t=2;
                for(int i=1;i<n/2+1;i++)
                {
                    b[t]=a[i];
                    t+=2;
                }
                b[n]=a[n/2+1];    
            }
            else//偶数 
            {
                int s=1;
                for(int i=n;i>=n/2+1;i--)
                {
                    b[s]=a[i];
                    s+=2;
                }
                int t=2;
                for(int i=1;i<=n/2;i++)
                {
                    b[t]=a[i];
                    t+=2;
                }
            }
            for(int i=1;i<=n;i++)
                cout<<b[i]<<" ";
            cout<<endl;
        }
        return 0;
    }

    去年12月去参加了一下校赛(一题没A,就看了几个题),对F题有点印象,结果今天上来没看题就按之前的思路写,写错两次(阅读理解硬伤)结果写了大半个小时

    思路挺简单的sort排一下,之后赋值给新的数组,学校的OJ好像并不开放,没法跑一下,但样例是过了

  • 相关阅读:
    poj1511
    poj2996
    poj1062
    poj3259
    poj2993
    手动上传SNAPSHOT文件到Maven私服Nexus的方法
    安全可靠国产系统下的应用怎么搭建?
    手动上传SNAPSHOT文件到Maven私服Nexus的方法
    Maven 初学+http://mvnrepository.com/
    IDEA中Maven依赖下载失败解决方案
  • 原文地址:https://www.cnblogs.com/benzikun/p/10526833.html
Copyright © 2020-2023  润新知