记录编号 31467 评测结果 AAAAAAAAAA
题目名称 找最佳通路 最终得分 100
用户昵称 GravatarTruth.Cirno 是否通过 通过
代码语言 C++ 运行时间 0.004 s
提交时间 2011-11-02 18:02:42 内存使用 0.29 MiB
显示代码纯文本
#include <cstdio>
using namespace std;

int way[51]={0},map[51][49]={{0}},que[2500]={0},len[2500]={0};
bool used[51]={false};

int main(void)
{
	freopen("city.in","r",stdin);
	freopen("city.out","w",stdout);
	int i,n,m,st,en,temp,temp2,tail=0,head=1;
	scanf("%d %d %d %d\n",&n,&m,&st,&en);
	for (i=1;i<=m;i++)
	{
		scanf("%d %d\n",&temp,&temp2);
		map[temp][way[temp]++]=temp2;
	}
	que[0]=st;
	len[0]=1;
	used[st]=true;
	while (tail<=head)
	{
		for (i=0;i<way[que[tail]];i++)
			if (!used[map[que[tail]][i]])
			{
				head++;
				que[head]=map[que[tail]][i];
				len[head]=len[tail]+1;
				used[que[head]]=true;
				if (que[head]==en)
				{
					printf("%d\n",len[head]);
					fclose(stdin);
					fclose(stdout);
					return(0);
				}
			}
		tail++;
	}
	fclose(stdin);
	fclose(stdout);
	return(0);
}