记录编号 158971 评测结果 AAAAAAAAAA
题目名称 找最佳通路 最终得分 100
用户昵称 GravatarSatoshi 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2015-04-18 19:28:06 内存使用 0.31 MiB
显示代码纯文本
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
ifstream in("city.in");
ofstream out("city.out");
int n,m,s,t;
vector<int> g[51],c[51];
int f[51]={0};
bool l[51]={0},o[51]={0};
void SPFA()
{
	int i;
	queue<int> q;
	for(i=1;i<=n;i++)
	{
		f[i]=9999999;
		l[i]=0;
	}
	f[s]=0;
	l[s]=1;
	q.push(s);
	while(!q.empty())
	{
		int u=q.front();
		q.pop();
		l[u]=0;
		for(i=0;i<g[u].size();i++)
		{
			int v=g[u][i];
			if(f[v]>f[u]+1)
			{
				f[v]=f[u]+1;
				if(!l[v])
				{
					l[v]=1;
					q.push(v);
				}
			}
		}
	}
}
int main()
{
	int i,j,k,a,b;
	in>>n>>m>>s>>t;
	for(i=1;i<=m;i++)
	{
		in>>a>>b;
		g[a].push_back(b);
		g[b].push_back(a);
	}
	SPFA();
	out<<f[t]+1<<endl;
	return 0;
}