比赛 20111111 评测结果 AAAAAAAAAA
题目名称 传话 最终得分 100
用户昵称 王者自由 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 09:53:18
显示代码纯文本
#include <cstdio>
#include <queue>
using namespace std;
const int MAXN = 1111;
int n, m, x, y, k, G[MAXN][MAXN];
bool c[MAXN];
bool BFS(int s) {
    int u, v;
    for(u=1; u<=n; u++)
        c[u] = 0;
    c[s] = true;
    queue<int> Q;
    Q.push(s);
    while(!Q.empty()) {
        u = Q.front(); Q.pop();
        for(int j=1; j<=G[u][0]; j++) {
            v = G[u][j];
            if(v == s) return true;
            if(!c[v]) {
                c[v] = true;
                Q.push(v);
            }
        }
    }
    return false;
}
int main() {
    freopen("messagez.in","r",stdin);
    freopen("messagez.out","w",stdout);
    scanf("%d %d", &n, &m);
    for(int i=1; i<=m; i++) {
        scanf("%d %d", &x, &y);
        G[x][++G[x][0]] = y;
    }
    for(int i=1; i<=n; i++)
        printf("%c\n", BFS(i) ? 'T' : 'F');
    return 0;
}