0
已解决
姚文涛
中级守护
中级守护
#include<iostream>
#include<cmath>
#include<cstdio>
#include<cstring>
#include<sstream>
#include<algorithm>
#include<queue>
#include<vector>
#include<string>
#include<stack>
#include<cstdlib>
int a[1001][1001],b[1001][1001],c[1001],d[1001];
int n,m,x,y;
int main(){
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
memset(d,0,sizeof(d));
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x>>y;
a[x][y]=1;
b[y][x]=1;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=n;k++){
if((a[i][j]==1)&&(a[j][k]==1)&&(i!=k)){
a[i][k]=1;
b[k][i]=1;
}
if((b[i][j]==1)&&(b[j][k]==1)&&(i!=k)){
b[i][k]=1;
a[k][i]=1;
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(a[i][j]==1) c[i]++;
if(b[i][j]==1) d[i]++;
}
}
int s=0;
for(int i=1;i<=n;i++){
if((c[i]>=(n+1)/2)||(d[i]>=(n+1)/2)){
s++;
}
}
cout<<s<<endl;
return 0;
}