• P1716 双调序列


    题目描述

    电脑组的童鞋们经常玩一些智力PK小游戏,某月某日,发源于小朋友又发明了一种新的序列:双调序列,所谓的双调呢主要是满足如下条件描述:

    假定有n(n<=1000)个整数(都在longint范围内,即-2147483648~2147483647),双调序列的第一个数是n个整数中的最大数,第二个数是n个整数中的最小数,第三个数是n个数中的第二大数,第四个数是n个数中的第二小数……取过的数不能再取,依次类推,直到结束。

    聪明的你听完描述就抿嘴笑了吧?那就请你用程序正确的帮他找出这n个数的双调序列。

    输入输出格式

    输入格式:

     

    第1行为一个整数n。

    接下来n行给出了题目中所述的n个整数,每行包含一个整数。

     

    输出格式:

     

    有n行,每行为一个整数,是满足条件的双调序列

    输入输出样例

    输入样例#1: 复制
    5
    10
    -1
    3
    3
    -9
    
    输出样例#1: 复制
    10
    -9
    3
    -1
    3
    

    说明

    对于100%的数据,n<=1000。

    模拟啊

    水题啊,

    二分的思想,

    详见代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cmath>
     4 #include<algorithm>
     5 #include<cstring>
     6 using namespace std;
     7 
     8 int n;
     9 int a[1002];
    10 
    11 bool cmp(int x,int y)
    12 {
    13     return x>y;
    14 }
    15 
    16 int main()
    17 {
    18     scanf("%d",&n);
    19     for(int i=1;i<=n;++i)
    20         scanf("%d",&a[i]);
    21     sort(a+1,a+n+1,cmp);
    22     for(int i=1;i<=n/2;++i)
    23     {
    24         printf("%d
    ",a[i]);
    25         printf("%d
    ",a[n-i+1]);
    26     }    
    27     if(n%2==1) 
    28         printf("%d",a[n/2+1]);
    29     return 0;
    30 }

    如果你不开心,那我就把右边这个帅傻子分享给你吧, 

    你看,他这么好看,那么深情的望着你,你还伤心吗? 

    真的!这照片盯上他五秒钟就想笑了。 

    一切都会过去的。

  • 相关阅读:
    windows,linux,esxi系统判断当前主机是物理机还是虚拟机?查询主机序列号命令 风行天下
    zabbix监控网络的出入口流量 风行天下
    python 编写远程连接服务器脚本 风行天下
    zabbix 监控windows端cpu使用率百分比 风行天下
    linux计划任务crontab的使用 风行天下
    cd
    rm
    cp
    Windows XP和Windows 7双系统安装和启动菜单修复
    MapInfo、ArcGIS 狙击战 1
  • 原文地址:https://www.cnblogs.com/Mary-Sue/p/9431779.html
Copyright © 2020-2023  润新知