dijkstra模板 敲敲
using namespace std;
ll n,t,s;
bool w[71];
ll r[71][71];
ll tt;
ll dis[71];
ll ans;
ll maxx;
ll e;
int main()
{
scanf("%d%d%d",&n,&t,&s);
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
scanf("%d",&r[i][j]);
for(int i=1;i<=n;i++)
dis[i]=1e9;
dis[1]=0,w[1]=1;
for(int i=1;i<=n;i++)
if(r[1][i]!=0)
dis[i]=r[1][i];
for(int i=1;i<=n-1;i++)
{
int minl=1e9,tt=0;
for(int j=1;j<=n;j++)
{
if(minl>dis[j]&&!w[j])
minl=dis[j],tt=j;
}
if(!tt)
break;
w[tt]=1;
for(int j=1;j<=n;j++)
if(dis[j]>r[tt][j]+dis[tt])
dis[j]=r[tt][j]+dis[tt];
}
printf("%d",dis[s]);
return 0;
}