Pagini recente » Cod sursa (job #1997095) | Cod sursa (job #3658) | Cod sursa (job #2885296) | Cod sursa (job #2386189) | Cod sursa (job #1123157)
#include<fstream>
#include<algorithm>
using namespace std;
int a[2001][2001];
ifstream cin("ubuntzei.in");
ofstream cout("ubuntzei.out");
int main()
{
int n,m,i,j,l,g,s;
cin>>n>>m;
int k[min(16,n-1)];
cin>>g;
for(i=1;i<=g;i++)
cin>>k[i];
for(i=1;i<=m;i++)
{
cin>>j>>l>>a[j][l];
a[l][j]=a[j][l];
}
for(l=1;l<=n;l++)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(a[i][l]&&a[l][j]&&(a[i][j]>a[i][l]+a[l][j]||!a[i][j])&&i!=j)
a[i][j]=a[i][l]+a[l][j];
}
}
}
s=a[1][k[1]];
for(i=2;i<=g;i++)
{
s=s+a[k[i-1]][k[i]];
}
s=s+a[k[g]][n];
cout<<s;
return 0;
}