记录编号 |
33599 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[金陵中学2007] 传话 |
最终得分 |
100 |
用户昵称 |
Makazeu |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.082 s |
提交时间 |
2011-11-11 14:47:19 |
内存使用 |
3.68 MiB |
显示代码纯文本
#include <cstdlib>
#include <cstdio>
#include <iostream>
using namespace std;
int N;
int M;
int Mat[1001][1001];
int Abut[1001]={0};
void init()
{
scanf("%d %d\n",&N,&M);
int a,b;
for (int i=1;i<=M;i++)
{
scanf("%d %d\n",&a,&b);
Mat[a][++Abut[a]]=b;
}
}
bool bfs(int S)
{
int big=1;
int sma=0;
int Q[1001]={0};
bool used[2001]={false};
Q[0]=S;
while(sma<=big)
{
if(Q[sma]==S && sma!=0)
return true;
for (int i=1;i<=Abut[Q[sma]];i++)
{
if(used[Mat[Q[sma]][i]])
continue;
Q[big++]=Mat[Q[sma]][i];
used[Mat[Q[sma]][i]]=true;
}
sma++;
}
return false;
}
int main()
{
freopen("messagez.in","r",stdin);
freopen("messagez.out","w",stdout);
init();
for (int i=1;i<=N;i++)
{
if(bfs(i))
cout<<"T"<<endl;
else
cout<<"F"<<endl;
}
return 0;
}