比赛 20111111 评测结果 AAAWTTTTTA
题目名称 传话 最终得分 40
用户昵称 song 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-11 11:18:04
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,ni[1010][1010]={0},ki[1010][1010]={0},pp=0,mi[1010]={0};
int dfs(int x,int y,int z);
int main()
{
	freopen("messagez.in","r",stdin);
	freopen("messagez.out","w",stdout);
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		int a,b;
		cin>>a>>b;
		ni[a][b]=1;
	}
	for(int i=1;i<=n;i++)
	{
		pp=0;
		dfs(i,i,0);
		if(pp==0)
		{
			cout<<"F"<<endl;
		}
	}
}
int dfs(int x,int y,int z)
{
	if(z>=12)
	{
		return 0;
	}
	if(x==y&&z!=0)
	{
		cout<<"T"<<endl;
		pp++;
		return 0;
	}
	else
	{
		if(z==0)
		{
			for(int i=1;i<=n;i++)
			{
				if(ni[x][i]==1&&mi[i]==0)
				{
					mi[i]=1;
					dfs(i,y,z+1);
					mi[i]=0;
					if(pp!=0)
						return 0;
				}
			}
		}
		else
		{
			for(int i=1;i<=n;i++)
			{
				if(ni[x][i]==1)
				{
					if(ni[x][i]==1&&mi[i]==0)
					{
						mi[i]=1;
						dfs(i,y,z+1);
						mi[i]=0;
						if(pp!=0)
						{
							return 0;
						}
					}
				}
			}
		}
	}
}