Pagini recente » Cod sursa (job #1447156) | Cod sursa (job #1793620) | Cod sursa (job #2070398) | Cod sursa (job #499900) | Cod sursa (job #675196)
Cod sursa(job #675196)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
int i,j,n,m,b[2010],x,y,c1,k;
unsigned long d[2010];
struct pc
{
int nod,cost;
};
vector<pc> a[2010];
inline void det()
{
int i,x;
queue<int> q;
q.push(1);
for(i=1;i<=n;++i)
d[i]=1<<30;
d[1]=0;
while(!q.empty())
{
x=q.front();
for(i=0;i<a[x].size();++i)
if(d[a[x][i].nod]>d[x]+a[x][i].cost)
d[a[x][i].nod]=d[x]+a[x][i].cost,q.push(a[x][i].nod);
q.pop();
}
}
int main()
{
FILE *f=fopen("ubuntzei.in","r");
FILE *g=fopen("ubuntzei.out","w");
fscanf(f,"%d%d%d",&n,&m,&k);
for(i=1;i<=k;++i)
fscanf(f,"%d",&b[i]);
for(i=1;i<=m;++i)
{
fscanf(f,"%d%d%d",&x,&y,&c1);
a[x].push_back((pc) {y,c1});
a[y].push_back((pc) {x,c1});
}
det();
fprintf(g,"%ld",d[n]);
return 0;
}