POJ - 3660 Cow Contest

代码如下:
#include<cmath>
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<stack>
#include<cstring>
#include<queue>
using namespace std;
bool a[120][120];
int n, m;
int main(){
while(scanf("%d%d", &n, &m) != EOF)
{
for(int i = 0; i <= n; i ++ )
for(int j = 0; j <= n; j ++ )
a[i][j] = false;
for(int i = 0; i < m; i ++ )
{
int ff, tt;
scanf("%d%d", &ff, &tt);
a[ff][tt] = true;
}
for(int k = 1; k <= n; k ++ )
for(int i = 1; i <= n; i ++ )
for(int j = 1; j <= n; j ++ )
if(i == j) continue;
else a[i][j] = a[i][j] || (a[i][k] && a[k][j]);
int ans = 0;
for(int i = 1; i <= n; i ++ )
{
bool pass = true;
for(int j = 1; j <= n; j ++ )
if(i == j) continue;
else if(!(a[i][j] || a[j][i]))
{
pass = false;
break;
}
if(pass) ans ++ ;
}
printf("%d\n", ans);
}
system("pause");
return 0;
}