L2-021. 点赞狂魔

能用STL解决的问题都不叫问题。

set是一个集合,S.size()表示的是不同标签的个数(即集合的大小)。

#include<iostream>
#include<set>
#include<algorithm>
using namespace std;
typedef struct node
{
    string a;
    int count;
    int data;
}Node;
bool cmp(Node a,Node b)
{
    if(a.data!=b.data)
        return a.data>b.data;
    else
        return a.count<b.count;
}
int main()
{
    int i,j,n,temp;
    cin>>n;
    Node que[n];
    for (i=0;i<n;i++)
    {
        cin>>que[i].a;
        set<int>S;
        cin>>que[i].count;
        for (j=0;j<que[i].count;j++)
        {
            cin>>temp;
            S.insert(temp);
        }
        que[i].data=S.size();
    }
    sort(que,que+n,cmp);
    if (n==0)
    cout<<"- - -";
    else if (n==1)
    cout<<que[0].a<<" - -";
    else if (n==2)
    cout<<que[0].a<<" "<<que[1].a<<" -";
    else
    cout<<que[0].a<<" "<<que[1].a<<" "<<que[2].a;
}
全部评论

相关推荐

11-03 14:38
重庆大学 Java
AAA求offer教程:我手都抬起来了又揣裤兜了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务