5.
话题焦点人物
微博提供了一种便捷的交流平台。一条微博中,可以提及其它用户。例如Lee发出一条微博为:“期末考试顺利 @Kim @Neo”,则Lee提及了Kim和Neo两位用户。
我们收集了N(1 < N < 10000)条微博,并已将其中的用户名提取出来,用小于等于100的正整数表示。
通过分析这些数据,我们希望发现大家的话题焦点人物,即被提及最多的人(题目保证这样的人有且只有一个),并找出那些提及它的人。
时间限制:1000
内存限制:65536
输入
输入共两部分: 第一部分是微博数量N,1 < N < 10000。 第二部分是N条微博,每条微博占一行,表示为: 发送者序号a,提及人数k(0 < = k < = 20),然后是k个被提及者序号b1,b2...bk; 其中a和b1,b2...bk均为大于0小于等于100的整数。相邻两个整数之间用单个空格分隔。
输出
输出分两行: 第一行是被提及最多的人的序号; 第二行是提及它的人的序号,从小到大输出,相邻两个数之间用单个空格分隔。同一个序号只输出一次。
样例输入
5 1 2 3 4 1 0 90 3 1 2 4 4 2 3 2 2 1 3
样例输出
3 1 2 4
#include<bits/stdc++.h>
using namespace std;
int main(){//话题焦点人物
int n;
cin>>n;
int a[n][23]={},b[101]={};
for(int i=0;i<n;i++){
int c,d;
cin>>c>>d;
a[i][0]=c;
a[i][1]=d;
for(int j=2;j<2+d;j++){
cin>>a[i][j];
b[a[i][j]]++;
}
}
int maxn=-1,maxx;
for(int i=0;i<101;i++){
if(b[i]>maxn){
maxn=b[i];
maxx=i;
}
}
cout<<maxx<<endl;
int p[10001]={},l=0;
for(int i=0;i<n;i++){
for(int j=0;j<23;j++){
if(a[i][j]==maxx&&j!=0&&j!=1){
p[l]=a[i][0];
l++;
}
}
}
for(int i=0;i<l-1;i++){
for(int j=0;j<l-1-i;j++){
if(p[j]>p[j+1]){
swap(p[j],p[j+1]);
}
}
}
for(int i=0;i<l;i++){
cout<<p[i]<<" ";
}
return 0;
}