首页 > 代码库 > hdu 5038 Grade 水

hdu 5038 Grade 水

用map,也可以用数组,少了个特判WA了一发。

#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <cmath>#include <vector>#include <map>using namespace std;const int maxn=1000005;int n;int a[maxn];int cas=1;map<int,int>id;vector<int>ans;int main(){//    freopen("in","r",stdin);    int t;    cin>>t;    while(t--){        printf("Case #%d:\n",cas++);        id.clear();        scanf("%d",&n);        int x;        int up=0;        for(int i=0;i<n;i++){            scanf("%d",&x);            int y=10000-(100-x)*(100-x);            ++id[y];            up=max(up,id[y]);        }        ans.clear();        for(map<int,int> ::iterator it=id.begin();it!=id.end();it++){            if(it->second==up)ans.push_back(it->first);        }        if(up*ans.size()==n&&ans.size()>1)puts("Bad Mushroom");        else {            sort(ans.begin(),ans.end());            for(int i=0;i<ans.size();i++)printf("%d%c",ans[i],i==ans.size()-1?\n: );        }    }    return 0;}

 

hdu 5038 Grade 水