22271:绿水青山之植树造林活动
http://cs101.openjudge.cn/practice/22271/
据我国史料记载,现在植被稀少的黄土高原、渭河流域也曾是森林遍布、山清水秀。楼兰古城因屯垦开荒、盲目灌溉,导致孔雀河改道而衰落。自然生态的变迁决定着人类文明的兴衰更替。习近平总书记在阐述生态与文明的关系时指出:“生态兴则文明兴,生态衰则文明衰”。
2013年4月2日,习近平总书记在参加首都义务植树活动时指出,我们必须清醒地看到,我国总体上仍然是一个缺林少绿、生态脆弱的国家,植树造林,改善生态,任重而道远。
2020年,习近平总书记在参加首都义务植树活动时强调,要牢固树立“绿水青山就是金山银山”的理念,加强生态保护和修复,扩大城乡绿色空间,为人民群众植树造林,努力打造青山常在、绿水长流、空气常新的美丽中国。
为了更科学地植树造林,需要对现有树木的种类进行统计,你能完成这个任务,为建设生态文明贡献一己之力吗?

输入
输入第一行给出一个正整数N(N<=100000),为树的数量。随后的N行,每行给出卫星观测到的一颗树的种类名称。种类名称是不超过30个英文字母和空格组成的字符串。
输出
按字典序递增输出各种树的种类名称及其所占总数的百分比,其间以空格分隔,精确到小数点后四位
样例输入
4
Apple
Cherry
Pear
Peach样例输出
Apple 25.0000%
Cherry 25.0000%
Peach 25.0000%
Pear 25.0000%python
import sys
from collections import Counter
def main():
# 读取输入
input_data = sys.stdin.read().strip().split('\n')
N = int(input_data[0]) # 树的总数
tree_names = input_data[1:] # 每棵树的种类名称
# 统计每种树的数量
tree_counter = Counter(tree_names)
# 按字典序排序
sorted_trees = sorted(tree_counter.items())
# 输出结果
for tree, count in sorted_trees:
percentage = (count / N) * 100
print(f"{tree} {percentage:.4f}%")
if __name__ == "__main__":
main()