记录编号 33599 评测结果 AAAAAAAAAA
题目名称 [金陵中学2007] 传话 最终得分 100
用户昵称 GravatarMakazeu 是否通过 通过
代码语言 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;
}