L2-021. 点赞狂魔

#include <iostream>
#include <cstdio>
#include <vector>
#include <cstring>
#include <string>
#include <set>
#include <algorithm>

using namespace std;
set<int> st[105];
int num[105];
struct node{
  string name;
  double ps;
  int cnt;
}per[105];
bool cmp1(struct node a,struct node b){
  if(a.cnt == b.cnt){
    return a.ps < b.ps;
  }
  return a.cnt > b.cnt;
}
int main(void){
  int n;
  cin>>n;

  for(int i = 0; i < n; i++){
    cin>>per[i].name>>num[i];
    int la;
    for(int j = 1; j <= num[i]; j++){
      cin>>la;
      st[i].insert(la);
    }
  }
  for(int i = 0; i < n ; i++){
    per[i].cnt = st[i].size();
    per[i].ps = double(num[i]) / double(st[i].size()) ;

  }
  
  sort(per,per + n,cmp1);
  
  int i;
  for(i = 0; i < 3 && i < n; i++){
    if(i == 2){
      cout<<per[i].name<<endl;
    }
    else{
      cout<<per[i].name<<" ";
    }
  }
  
  for(int j = i;  j < 3; j++){
    if(j == 2){
      printf("-\n");
    }
    else{
      printf("- ");
    }
  }
  return 0;
}

猜你喜欢

转载自blog.csdn.net/gyh0730/article/details/80246085
今日推荐