top1编程
← 返回题目
题解

【入门】宇宙总统2

1 条题解

  • 0
    @ 2026-7-28 22:09:31
    #include<bits/stdc++.h>
    using namespace std;
    long long n,p;string b[9999];
    struct zt{
    	string xm;
    	long long ps;
    }a[9999];
    int cnd(zt c,zt d){
    	if(c.ps!=d.ps){
    		return c.ps>d.ps;
    	}
    	return c.xm>d.xm;
    }
    int main(){
    	cin>>n;
    	for(int i=1;i<=n;i++){
    		cin>>b[i];//读入名字
    	}
    	sort(b+1,b+n+1);//对名字排序
    	for(int i=1;i<=n;i++){//
    		if(b[i]!=b[i-1]){
    			a[++p].xm=b[i];//统计单个名字
    		}
    	}
    	for(int i=1;i<=n;i++){
    		for(int j=1;j<=p;j++){
    			if(b[i]==a[j].xm){//找到对应名字
    				a[j].ps++;//当前人的票数增加
    			}
    		}
    	}
    	sort(a+1,a+n+1,cnd);//按名字排序
    	for(int i=1;i<=p;i++){
    		cout<<a[i].xm<<" "<<a[i].ps<<endl;
    	}
    	return 0;
    }
    
    • 1