• HDU 3785 寻找大富翁


    寻找大富翁

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 6716    Accepted Submission(s): 2492


    Problem Description
    浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.
     

     

    Input
    输入包含多组测试用例.
    每个用例首先包含2个整数n(0<n<=100000)和m(0<m<=10),其中: n为镇上的人数,m为需要找出的大富翁数, 接下来一行输入镇上n个人的财富值.
    n和m同时为0时表示输入结束.
     

     

    Output
    请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输出,每组输出占一行.
     

     

    Sample Input
    3 1
    2 5 -1
    5 3
    1 2 3 4 5
    0 0
     
    Sample Output
    5
    5 4 3
    Source
    分析:这题很坑呐!用C++输入输出会超时,此题应选用scanf输入!开始尝试着倒序输出,超时!虽然要求前m的大富翁,但负数就不算是大富翁了,这时就应该全部输出,这个问题没有注意到,继续WA!此题还要注意空格的输入输出,不然肯定又PE了!
    以下给出AC代码:
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 int main()
     4 {
     5     int a[100005];
     6     int n,m,i,j,k;
     7     while(scanf("%d%d",&n,&m)&&m&&n)
     8     {
     9         k=0;
    10         for(i=0;i<n;i++)
    11             scanf("%d",&a[i]);
    12         sort(a,a+n);
    13         if(m>n)
    14         {
    15             for(i=n-1;i>=0;i--)
    16             {
    17                 printf("%d",a[n]);
    18                 if(i!=0)
    19                     printf(" ");
    20             }
    21             printf("
    ");
    22             continue;
    23         }
    24         for(i=n-1;i>=n-m;i--)
    25         {
    26             if(a[i]<0)
    27             {
    28                 j=i;
    29                 k=1;
    30                 break;
    31             }
    32             printf("%d",a[i]);
    33             if(i!=n-m)
    34                 printf(" ");
    35         }
    36         if(k!=0)
    37         {
    38             for(i=j;i>=0;i++)
    39             {
    40                 printf("%d",a[i]);
    41                 if(i!=0)
    42                     printf(" ");
    43             }
    44         }
    45             printf("
    ");
    46     }
    47     return 0;
    48 }
  • 相关阅读:
    隔列求和
    拆分工作表一表变多表(Excel代码集团)
    拆分工作表一表变多簿(Excel代码集团)
    用汇编的眼光看C++(之退出流程) 四
    房价预测——备忘
    备用——GIT操作
    .NET 包对不同框架的兼容性
    Mac 快捷键 备忘录
    C#用法笔记——备忘
    git分支切换提交修改
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/6392776.html
Copyright © 2020-2023  润新知