记录编号 245579 评测结果 AAAAAAAAAA
题目名称 [金陵中学2007] 传话 最终得分 100
用户昵称 Gravatarsxysxy 是否通过 通过
代码语言 C++ 运行时间 0.054 s
提交时间 2016-04-03 18:56:05 内存使用 0.29 MiB
显示代码纯文本
#include <cstdio>
#include <vector>
#include <cstdlib>
#include <algorithm>
#include <list>
#include <stack>
#include <cctype>
#include <cstring>
#include <queue>
#include <string>
using namespace std;

int rd_int()
{
	int ret;
	char c;
	int sig = 0;
	while(c = getchar())
	{
		if(c == '-')
			sig = 1;
		else if(c >= '0' && c <= '9')
		{
			ret = c ^ 0x30;
			break;
		}
	}
	while(isdigit(c = getchar()))ret = (ret << 3) + (ret << 1) + (c ^ 0x30);
	if(sig) return -ret;
	return ret;
}

int n,m;

vector<int> adj[1001];

void read_data()
{
	int a,b;
	n = rd_int();
	m = rd_int();
	for(int i = 1; i <= m; i++)
	{
		a = rd_int();
		b = rd_int();
		adj[a].push_back(b);
	}
}

bool vis[1001];

bool bfs(int s)
{
	queue<int> q;
	q.push(s);
	memset(vis, 0, sizeof(vis));
	while(q.size())
	{
		int u = q.front();
		q.pop();
		for(int i = 0; i < adj[u].size(); i++)
		{
			int v = adj[u][i];
			if(!vis[v])
			{
				q.push(v);
				vis[v] = true;
			}
		}
	}
	return vis[s];
}

void solve()
{
	for(int i = 1; i <= n; i++)
	{
		if(bfs(i))
			puts("T");
		else puts("F");
	}
}

void sf()
{
	freopen("messagez.in", "r", stdin);
	freopen("messagez.out", "w", stdout);
}

int main()
{
	sf();
	read_data();
	solve();
	return 0;
}