记录编号 |
538474 |
评测结果 |
AAAAAAAAAA |
题目名称 |
找最佳通路 |
最终得分 |
100 |
用户昵称 |
没啥,随心 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.011 s |
提交时间 |
2019-07-25 00:25:40 |
内存使用 |
39.46 MiB |
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
int n,m,s,e,a[2600][2600],b[2600],head=0,tail=0;
int c[2600];
int push(int x)
{
b[tail]=x;
tail++;
}
int get(){
return b[head];
}
int pop(){
head++;
}
int js(){
while(head<tail)
{
int ns=get();
for(int i=1;i<=m;i++)
if(a[i][1]==ns)
{
if(c[a[i][1]]+1<c[a[i][2]])
c[a[i][2]]=c[a[i][1]]+1;
if(a[i][2]==e)
return c[a[i][2]];
else
push(a[i][2]);
} pop();
}
}
int main(){
freopen("city.in","r",stdin);
freopen("city.out","w",stdout);
cin>>n>>m>>s>>e;
for(int i=1;i<=m;i++)
for(int j=1;j<=2;j++)
cin>>a[i][j];
for(int i=1;i<=2599;i++)
c[i]=99999;
c[s]=1;
if(s==e) cout<<"1";
else
{
push(s);
cout<<js();
}
}