HDU2673-shǎ崽(水题)

如果不能够直接秒杀的题,就不算水题。又应证了那句话,有时候,如果在水题上卡住,那么此题对于你来说,也就不算是水题了额~~

刚睡醒,迷迷糊糊。

     题目的意思很简单,求一个最大的,再求一个最小的。几乎是什么营养的题目。可是一开始我还是傻傻地直接暴力,哈哈,为我的笨付出了直接代价。10000*10000,不TLE才怪。

     后来再稍微想了下,应该先从大到小排序,然后取一个头,再取一个尾,直接扫描到中间,分n为奇偶情况考虑。不知各位大虾是不是有更快。

#include<iostream>
#include<algorithm>
using namespace std;

bool cmp(int a,int b)
{
 if(a>b)
  return true;
 else
  return false;
}
int main(void)
{
 int n,i,j,num[10001];
 while(scanf("%d",&n)==1)
 {
  for(i=0;i<n;i++) 
   scanf("%d",&num[i]);
  sort(num,num+n,cmp);
  if(n%2)//奇数这种情况
  {
   for(j=0,i=0;i<n/2;i++,j++)
   {
    printf("%d %d ",num[j],num[n-j-1]);
   }
   printf("%d\n",num[n/2]);
  }
  else//偶数这种情况
  {
   for(j=0,i=0;i<n/2-1;i++,j++)
    printf("%d %d ",num[j],num[n-j-1]);
   printf("%d %d\n",num[n/2-1],num[n/2]);
  }
  
 }
 return 0;
}

 

转载于:https://www.cnblogs.com/cchun/archive/2011/05/14/2520080.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值