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