Pagini recente » Cod sursa (job #678834) | Cod sursa (job #772721) | Cod sursa (job #2920440) | Monitorul de evaluare | Cod sursa (job #1070969)
//horatiu11
# include <cstdio>
# include <vector>
# include <queue>
# include <cstring>
# define nmax 2001
# define inf 2000000000
# define kmax 17
using namespace std;
int c[kmax],n,m,k,x,y,z,D[nmax];
vector <pair <int,int> >G[nmax];
queue <int>q;
void bellman_ford(int x)
{
int i;
q.push(x);D[x]=0;
while(!q.empty())
{
x=q.front();q.pop();
for(i=0;i<G[x].size();++i)
if(D[G[x][i].first] > D[x]+G[x][i].second)
{
D[G[x][i].first] = D[x]+G[x][i].second;
q.push(G[x][i].first);
}
}
}
int main()
{
int i;
freopen("ubuntzei.in","r",stdin);
freopen("ubuntzei.out","w",stdout);
scanf("%d%d%d",&n,&m,&k);
for(i=1;i<=k;++i)
scanf("%d",&c[i]);
for(i=1;i<=m;++i)
{
scanf("%d%d%d",&x,&y,&z);
G[x].push_back(make_pair(y,z));
G[y].push_back(make_pair(x,z));
}
c[++k]=n;
k=1;
//for(i=1;i<=k;++i)
//{
// memset(D[k],inf,sizeof(D[k]));
//bellman_ford(c[i]);
//}
for(i=1;i<=n;++i)
D[i]=inf;
bellman_ford(1);
printf("%d",D[n]);
return 0;
}