天梯赛训练2 7-9 点赞狂魔

当时题目理解错误  输出标签出现次数平均值最小的那个这个的意思就是标签出现次数最少的那个

#include <bits/stdc++.h>
#include <stdio.h>
using namespace std;

struct node
{
    string name;
    int ave;
    int cishu;

}A[105];

bool cmp(node a,node b)
{
    if(a.cishu!=b.cishu)
    {
        return a.cishu>b.cishu;
    }
    else return a.ave<b.ave;
}

int main()
{
   ios::sync_with_stdio(false);
   list<int> lis;
   int n,m;
   cin >>n;
   for(int i=0;i<n;i++)
   {
       lis.clear();
       cin >> A[i].name;
       cin >> m;int zhi;
       for(int q=0;q<m;q++)
       {
           cin >>zhi;
           lis.push_back(zhi);
       }
       lis.sort();
       lis.unique();
       A[i].cishu=lis.size();
       A[i].ave=m;
   }
   sort(A,A+n,cmp);
   if(n==1)
    cout << A[0].name << " " <<"-" <<" " <<"-" <<endl;
   if(n==2)
    cout << A[0].name <<" " <<A[1].name << " " <<"-" <<endl;
   if(n>=3)
    cout << A[0].name <<" "<<A[1].name << " " <<A[2].name <<endl;
    return 0;
}

原文地址:https://www.cnblogs.com/qq-1585047819/p/10483021.html