zoukankan      html  css  js  c++  java
  • HDOj-1425

    sort

    Time Limit: 6000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
    Total Submission(s): 40503    Accepted Submission(s): 11823


    Problem Description
    给你n个整数,请按从大到小的顺序输出其中前m大的数。
     
    Input
    每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。
     
    Output
    对每组测试数据按从大到小的顺序输出前m大的数。
     
    Sample Input
    5 3
    3 -35 92 213 -644
     
     
    Sample Output
    213 92 3

    其实就是一排序问题,我想麻烦了。。开了两个数组,一个储存0~正数,一个储存负数。是显得麻烦了,绕了一圈最后也一发A了。

    AC代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 const int MAX=1010000;
     8 
     9 int n,m;
    10 int a[MAX];
    11 int b[MAX];
    12 
    13 int main(){
    14     while(~scanf("%d %d",&n,&m)){
    15         int t=0;
    16         memset(a,0,sizeof(a));
    17         memset(b,0,sizeof(b));
    18         for(int i=0;i<n;i++){
    19             scanf("%d",&a[i]);
    20             if(a[i]>=0){            
    21                 b[t++]=a[i];//储存大于等于0的数 
    22                 a[i]=0;
    23             }
    24         }
    25         stable_sort(a,a+n-1);//稳定 
    26         stable_sort(b,b+t);
    27         if(t+1>=m){
    28             for(int i=t-1;i>t-m;i--){
    29                 printf("%d ",b[i]);
    30             }
    31             printf("%d
    ",b[t-m]);
    32         }
    33         else{
    34             printf("%d",b[t-1]);
    35             for(int i=t-2;i>=0;i--){
    36                 printf(" %d",b[i]);
    37                 m--;
    38             }
    39             for(int i=n-t-1;i>=0;i++){
    40                 if(m==0)
    41                 break;
    42                 if(a[i]!=0){
    43                     printf(" %d",a[i]);
    44                     m--;
    45                 }
    46             }
    47             printf("
    ");
    48         }
    49     }
    50     return 0;
    51 } 
  • 相关阅读:
    构建之法阅读笔记03
    周进度条
    周活动总结表
    电脑桌面美化
    如何让自己进步,去做成一件事
    后台网站
    laravel RBAC权限管理学习
    laravle定时任务
    django第一次简单讲解使用
    css3网页的淡入淡出效果
  • 原文地址:https://www.cnblogs.com/Kiven5197/p/5483725.html
Copyright © 2011-2022 走看看