#include<bits/stdc++.h>
using namespace std;
struct tree{
string name;
int sl;
};
tree a[10002];
bool cmp(tree x,tree y){
return x.name<y.name;
}
int main(){
string n;
int sum=0;
while(getline(cin,n)){
n[n.size()-1]=' ';
bool qaq=0;
for(int i=0;i<sum;i++){
if(a[i].name==n){
a[i].sl++;
qaq=1;
break;
}
}
if(!qaq){
sum++;
a[sum].name=n;
a[sum].sl++;
}
}
sort(a,a+sum,cmp);
for(int i=0;i<sum;i++){
cout<<a[i].name;
cout<<fixed<<setprecision(4)<<a[i].sl*100.0/sum<<endl;
}
}
在我国,大片的森林里面有着许多不同种类的树木。现在,国家林业局需要统计某片森林里,某种种类的树木占所有树木数量的百分比。
输入
数据输入为通过卫星观察到的我国某片森林的树木种类名单,每行一个字符串,表示一棵树的树木种类名称,树木种类名称不超过30个字符,中间可能有空格,头尾没有空格,字符包括字母、数字等可见字符,数据中有不超过10,000种不同的树木种类,和不超过1,000,000棵的树。
输出
对于每组测试数据,按字典序输出所有不同的树木种类名称,紧跟着该种类的树木占所有树木数量的百分比,保留小数点后四位有效数字,中间用空格分开。