Pagini recente » Cod sursa (job #1500677) | Cod sursa (job #1459022) | Cod sursa (job #316995) | Cod sursa (job #1316031) | Cod sursa (job #860579)
Cod sursa(job #860579)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
ifstream in ("ubuntzei.in");
ofstream out ("ubuntzei.out");
vector<vector<int> > *a;
vector<int> *v1;
int main (){
int n,m,k,i,j,t;
in>>n>>m>>k;
vector<vector<int> > d(n,vector<int>(n,100000));
a = &d;
vector<int>v(k);
v1 = &v;
for(i=0;i<k;i++)
in>>v[i];
for(i=0;i<m;i++)
{
in>>j>>t;
j--;t--;
in>>d[j][t];
d[t][j] = d[j][t];
}
for(t=0;t<n;t++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(d[i][j] > d[i][t] + d[t][j])
{
d[i][j] = d[i][t] + d[t][j];
}
//cout<<"\n";
//for(i=0;i<n;i++)
//{
//for(j=0;j<n;j++)
//cout<<d[i][j]<<" ";
//cout<<"\n";
//}
//
if(k==1)
out<<d[0][v[0]]+d[v[0]]][n-1];
if(k==0
out<<d[0][n-1];
return 0;
}