1)
#include<iostream>
using namespace std;int main(){ int b[100],c[100]; int n,m,x,y; int tot=0; cin>>n>>m; int a[n+1][n+1]; for(int i=1;i<=m;i++) { cin>>x>>y; a[x ][y]=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) a[i][k]=1; } for(int i=1;i<=n;i++) { int max=0; for(int j=1;j<=n;j++) { if(a[i][j]==1) max++; b[i]=max; } } for(int i=1;i<=n;i++) { int max=0; for(int j=1;j<=n;j++) { if(a[j][i]==1) max++; c[i]=max; } } for(int i=1;i<=n;i++) { if(b[i]>=(n+1)/2) tot++; if(c[i]>=(n+1)/2) tot++; } cout<<tot; }2)
#include<iostream>
#include<cstdio>#include<cstring>using namespace std;int main(){ int n,i,j,k,m,p,q,s[101][101],h[101]={0},g[101]={0},t=0; cin>>n>>m; memset(s,0,sizeof(s)); for(i=1;i<=m;i++) { cin>>p>>q; s[p][q]=1; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) for(k=1;k<=n;k++) { if(s[i][j]==1&&s[j][k]==1) s[i][k]=1; } for(i=1;i<=n;i++) for(j=1;j<=n;j++) { if(s[i][j]) { h[j]++; g[i]++; } } for(i=1;i<=n;i++) if(h[i]>n/2)t++; for(i=1;i<=n;i++) if(g[i]>n/2)t++; cout<<t; }