Pagini recente » Cod sursa (job #2042941) | Cod sursa (job #1186448) | Cod sursa (job #573850) | Cod sursa (job #698901) | Cod sursa (job #677590)
Cod sursa(job #677590)
#include<iostream>
#include<fstream>
#define DN 10005
using namespace std;
ifstream fin("ubuntzei.in");
ofstream fout("ubuntzei.out");
int n, m, d[DN], ks[DN], k, l=0;
struct nod
{
int nod1, nod2, c;
nod *urm;
}*a[2001], *p;
void creare(int x, int y, int cost)
{
nod *q=new nod;
q->nod1=x;
q->nod2=y;
q->c=cost;
q->urm=a[x];
a[x]=q;
}
int main()
{
int i, ok=1,x,y,z;
fin>>n>>m>>k;
for(i=2;i<=n;i++)
d[i]=999999;
for(i=1;i<=k;i++)
fin>>ks[i];
for(i=1;i<=m;i++)
{
fin>>x>>y>>z;
creare(x,y,z);
if(x==1)
d[y]=z;
}
while(ok)
{
p=a[1];ok=0;
while(p)
{
if(d[p->nod2]>d[p->nod1]+p->c)
{
d[p->nod2]=d[p->nod1]+p->c; ok=1;
}
p=p->urm;
}
}
ok=1;
fout<<d[ks[k]]+d[n];
}