题目描述
同学们应该学会多交一些好朋友。朋友关系是相互的, A 是 B 的好朋友,则 B 也是 A的好朋友。朋友关系是不传递的, A 是 B 的好朋友, B 是 C 的好朋友,但 A 和 C 不一定是好朋友。现在给出某小学部分同学之间的朋友关系,请编程统计朋友最多的人有多少个好朋友。 2≤n≤100,1≤m≤1000
输入
输入共 m+1 行。
第 1 行是两个整数 n 和 m,分别表示同学总人数和朋友关系对数。
第 2 行到第 m+1 行,描述了 m 对朋友关系。每行两个用单个空格隔开的同学姓名。
每个人的姓名仅由小写字母组成,且 1≤姓名的长度≤10。
输出
一个整数,表示朋友最多的人有多少个好朋友。
样例输入
4 3
lucy lily
jam lily
jam peter
样例输出
2
代码:
#include<bits/stdc++.h>
using namespace std;
struct stu
{
string name;
int number;
}a[101];
int n,m,sum=0,ans,ans2;
string peo[101];
bool find(string y)
{
for(int i=0;i<=sum;i++)
{
if(a[i].name==y){ans=i;return false;}
}
return true;
}
bool fide(string y)
{
for(int i=0;i<=sum;i++)
{
if(peo[i]==y){return false;}
}
return true;
}
bool cmp(stu x,stu y)
{
return x.number>y.number;
}
int main(){
cin>>n>>m;
for(int i=0;i<m;i++)
{
ans=0;
string b,c;
cin>>b>>c;
if(!fide(b+c) || !fide(c+b))continue;
else peo[ans]=b+c,ans++;
if(find(b))
{
a[sum].name=b;
a[sum].number++;
sum++;
}
else a[ans].number++;
ans=0;
if(find(c))
{
a[sum].name=c;
a[sum].number++;
sum++;
}
else a[ans].number++;
}
sort(a,a+n,cmp);
cout<<a[0].number;
return 0;
}
WA51分,就是找不出哪里错