RE求助
查看原帖
RE求助
1073741
UKE_bound楼主2024/1/13 13:28
#include<bits/stdc++.h>
using namespace std;
const int a[10]{25,18,15,12,10,8,6,4,2,1};
int n,m,al=0;
struct ss{
	string name;
	int fs,p[50];
}g[50];
bool cmp1(const ss& a,const ss& b){
	if(a.fs>b.fs)return 1;
	else if(b.fs>a.fs)return 0;
	for(int i=0;i<m;i++){
		if(a.p[i]>b.p[i]){
			return 1;
		}else if(b.p[i]>a.p[i]){
			return 0;
		}
	}
}
bool cmp2(const ss& a,const ss& b){
	if(a.p[0]>b.p[0])return 1;
	else if(b.p[0]>a.p[0])return 0;
	if(a.fs>b.fs)return 1;
	else if(b.fs>a.fs)return 0;
	for(int i=1;i<m;i++){
		if(a.p[i]>b.p[i]){
			return 1;
		}else if(b.p[i]>a.p[i]){
			return 0;
		}
	}
}
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		int k;
		cin>>k;
		m=max(m,k);
		for(int j=0;j<k;j++){
			string name;
			cin>>name;
			int ind=-1;
			for(int l=0;l<j+1;l++){
				if(g[l].name==name){
					ind=l;
				}
			}
			if(ind==-1){
				ind=al;
				al++;
				g[ind].name=name;
			}
			g[ind].p[j]++;
			g[ind].fs+=a[j];
		}
	}
	sort(g,g+m,cmp1);
	cout<<g[0].name<<endl;
	sort(g,g+m,cmp2);
	cout<<g[0].name;
	return 0;
} 
2024/1/13 13:28
加载中...