sort(桶排序+hash)

匿名 (未验证) 提交于 2019-12-02 23:49:02

题目链接:https://cn.vjudge.net/problem/HDU-1425

注意是多组输入

代码:

#include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<queue> #include<stack> #include<set> #include<vector> #include<cmath> #define Inf 0x3f3f3f3f const int maxn=1e5+5; typedef long long ll; using namespace std; int vis[maxn*10]; int ans[maxn*10]; int main() {          int n,m;     while(cin>>n>>m)     {     memset(vis,0,sizeof(vis));     int x;     int maxx=-Inf;     for(int t=0;t<n;t++)     {         scanf("%d",&x);         maxx=max(maxx,x+500000);         vis[x+500000]++;     }     int cnt=0;      int nn=maxx;     while(cnt<m)     {         while(vis[nn])         {             vis[nn]--;             ans[cnt]=nn-500000;             cnt++;             if(cnt==m)             {                 break;             }         }         nn--;     }     for(int t=0;t<cnt;t++)     {         if(t!=cnt-1)         printf("%d ",ans[t]);         else         {             printf("%d\n",ans[t]);         }     }    }    return 0; }

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!